入出力定義ファイル
--encrypted-files
オプションで指定します。ファイルのフォーマット
ファイルのフォーマットは以下の通りです。
inputs:
<input-id-1>: &user_1 <user-id-1>
<input-id-2>: &user_2 <user-id-2>
outputs:
<output-id-1>: *user_1
<output-id-2>: *user_2
<input-id> と <output-id> はそれぞれ /WORK/inputs/
と /WORK/outputs/
直下のディレクトリ名に対応します。
複数のinputとoutputを定義することができ、それぞれ異なるユーザーがデータのアップロードやダウンロードを行えるよう、個別のuser-idを割り当てることができます。
yamlでは、 &
で変数を定義し、 *
で変数を参照することで、同じuser-idを複数箇所で再利用できます。
例
例えば、以下のようなファイルを作成した場合、
inputs:
input_1: &user_1 fqO2dYtmu6kxxcWVlojWM7CGmmVg1W89mdCfF2dR4WY=
input_2: &user_2 hqG3DtmdfsdfTfdjsaklTxgtAsedfTfdjsaklTTTEEe=
outputs:
output_1: *user_1
user_id が
fqO2dYtmu6kxxcWVlojWM7CGmmVg1W89mdCfF2dR4WY=
のユーザは/WORK/inputs/input_1
ディレクトリにデータをアップロードできる。user_id が
hqG3DtmdfsdfTfdjsaklTxgtAsedfTfdjsaklTTTEEe=
のユーザは/WORK/inputs/input_2
ディレクトリにデータをアップロードできる。user_id が
fqO2dYtmu6kxxcWVlojWM7CGmmVg1W89mdCfF2dR4WY=
のユーザは/WORK/outputs/output_1
ディレクトリからデータをダウンロードできる。
という定義になります。
したがって、user_id が fqO2dYtmu6kxxcWVlojWM7CGmmVg1W89mdCfF2dR4WY=
のユーザは以下のようなコマンドでデータのアップロード・ダウンロードが可能です。
apc cleanroom data cp ./input_1 app:input_1/
apc cleanroom data cp app:output_1 ./output_1
同様に、user_id が hqG3DtmdfsdfTfdjsaklTxgtAsedfTfdjsaklTTTEEe=
のユーザは以下のようなコマンドでデータのアップロード・ダウンロードが可能です。
apc cleanroom data cp ./input_2 app:input_2/