cleanroom data コマンド
Cleanroom内のデータのアップロード、ダウンロード、管理を行います。
cleanroom data cp
ローカル環境とcleanroom間でデータをコピーします。
データをuploadする場合は<ソースパス>にローカル環境のパスを指定し、<宛先パス>にcleanroomのパスを指定します。
データをdownloadする場合は<ソースパス>にcleanroomのパスを指定し、<宛先パス>にローカル環境のパスを指定します。
cleanroomのパスは <cleanroom名>:<パス> の形式で指定します。
使用方法
apc cleanroom data cp <ソースパス> <宛先パス> \
--profile <プロファイル名>
例
# ローカル環境のinput_1ディレクトリをappという名前のcleanroomのinput_1ディレクトリにアップロードする
apc cleanroom data cp ./input_1 app:input_1/ --profile acompany
# appという名前のcleanroomのoutput_1ディレクトリをローカル環境のoutput_1ディレクトリにダウンロードする
apc cleanroom data cp app:output_1/ ./output_1/ --profile acompany
引数
- <ソースパス>
コピー元のパスを指定します。
- <宛先パス>
コピー先のパスを指定します。
オプション
- --profile <プロファイル名>
認証情報のプロファイル名を指定します。
正常終了時の出力例
# ローカルからcleanroomにアップロードする場合
$ apc cleanroom data cp ./input_1 app:input_1/ --profile acompany
worker_id: worker_abc123
work_id: work_xyz789
nonce: nonce_12345
Uploading ./input_1 to app:input_1/ ...
Handshake: OK.
Input file uploaded successfully.
# cleanroomからローカルにダウンロードする場合
$ apc cleanroom data cp app:output_1/ ./output_1/ --profile acompany
Downloading from app:output_1/ to ./output_1/
Using cached shared secret.
Output file downloaded successfully.
異常終了時の出力例
# 存在しないcleanroom名を指定した場合
$ apc cleanroom data cp ./input_1 nonexistent_app:input_1/ --profile acompany
NotFoundError: CleanRoom 'nonexistent_app' not found.
# パスの指定形式が間違っている場合
$ apc cleanroom data cp ./input_1 ./output_1 --profile acompany
ValidationError: <source> and <destination> must contain ':'
# ハンドシェイクが失敗した場合
$ apc cleanroom data cp ./input_1 app:input_1/ --profile acompany
worker_id: worker_abc123
work_id: work_xyz789
nonce: nonce_12345
Uploading ./input_1 to app:input_1/ ...
Handshake: Failed. Attestation verification failed
# 設定不備の場合
$ apc cleanroom data cp ./input_1 app:input_1/ --profile acompany
ConfigError: mr_enclave is not set in config.toml
# ディレクトリサイズが1GBを超える場合
$ apc cleanroom data cp ./large_input app:input_1/ --profile acompany
ValidationError: Directory size exceeds 1GB limit. Current size: 1.10GB
# 指定先がディレクトリでない場合
$ apc cleanroom data cp ./non-directory app:input_1/ --profile acompany
ValidationError: Source path is not a directory: non-directory
# 存在しないディレクトリを指定した場合
$ apc cleanroom data cp ./non-existent-dir app:input_1/ --profile acompany
ValidationError: Source path does not exist: non-existent-dir
# ディレクトリが空の場合
$ apc cleanroom data cp ./empty-dir app:input_1/ --profile acompany
ValidationError: Source directory is empty: empty-dir
# ユーザーにアップロード権限がない場合
$ apc cleanroom data cp ./input_1 app:input_1/ --profile acompany
ValidationError: User ID 'WzmQ8zrP6yovpQkK6QQa3ZjlPB-fVELmAhTkUC4ufWc=' does not have permission to upload to input ID 'input_1'. Allowed user ID: 'aCQjsGP60gRlYoVy76345JoaURWmhgkZAIoqK_WzR5s='. Please check the cleanroom 'app' configuration.