Amazon S3のアップローダー/ダウンローダー
Amazon S3にファイルをアップロードしたり、ダウンロードしたりするためのテンプレートです。
AWSのアクセスキーとシークレットが必要です。
紹介動画
概要
想定ユーザー
- Amazon S3にファイルをアップロードしたり、ダウンロードしたりしたいユーザー。
テンプレート動作
- 入力
- シークレット
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
s3-upload
FunctionのEnvironment variablesTARGET_S3_URI
- アップロード先のS3 URI。下記のような値。
s3://{bucket-name}/{prefix(folder-name)}/{object-name}
s3://{bucket-name}/{object-name}
- アップロード先のS3 URI。下記のような値。
SOURCE_PATH
s3-upload
FunctionのInputのPathと同一の値。
AWS_ACCESS_KEY_ID
- AWSアクセスキーID。ここでは
${{SECRET.AWS_ACCESS_KEY_ID}}
のように指定し、実際の値は対応するシークレットに設定する。
- AWSアクセスキーID。ここでは
AWS_SECRET_ACCESS_KEY
- AWSシークレットアクセスキー。ここでは
${{SECRET.AWS_SECRET_ACCESS_KEY}}
のように指定し、実際の値は対応するシークレットに設定する。
- AWSシークレットアクセスキー。ここでは
AWS_DEFAULT_REGION
- AWSリージョン。設定は任意。
s3-download
FunctionのEnvironment variablesSOURCE_S3_URI
- ダウンロード元のS3 URI。下記のような値。
s3://{bucket-name}/{prefix(folder-name)}/{object-name}
s3://{bucket-name}/{object-name}
- ダウンロード元のS3 URI。下記のような値。
TARGET_PATH
s3-download
FunctionのOutputのPathと同一の値。
AWS_ACCESS_KEY_ID
- AWSアクセスキーID。ここでは
${{SECRET.AWS_ACCESS_KEY_ID}}
のように指定し、実際の値は対応するシークレットに設定する。
- AWSアクセスキーID。ここでは
AWS_SECRET_ACCESS_KEY
- AWSシークレットアクセスキー。ここでは
${{SECRET.AWS_SECRET_ACCESS_KEY}}
のように指定し、実際の値は対応するシークレットに設定する。
- AWSシークレットアクセスキー。ここでは
AWS_DEFAULT_REGION
- AWSリージョン。設定は任意。
- アップロード対象のファイル
- ファイルをS3にアップロードする場合、POSTリクエストで設定したEndpointにファイルを送信する。
- シークレット
- Output
- ダウンロード対象のファイル
- ファイルをS3からダウンロードする場合、設定したEndpointからGETリクエストでファイルをダウンロードする。
- ダウンロード対象のファイル
- Function
- Amazon S3にファイルをアップロードする。
- Amazon S3からファイル をダウンロードする。
利用方法
単体での動作確認
- Canvasでシークレットとして下記を設定する。
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
- ファイルをS3にアップロードする場合、Canvasで
s3-upload
FunctionのEnvironment variablesとして下記を設定する。TARGET_S3_URI
- アップロード先のS3 URI。下記のような値。
s3://{bucket-name}/{prefix(folder-name)}/{object-name}
s3://{bucket-name}/{object-name}
- アップロード先のS3 URI。下記のような値。
SOURCE_PATH
s3-upload
FunctionのInputのPathと同一の値。
AWS_ACCESS_KEY_ID
- AWSアクセスキーID。ここでは
${{SECRET.AWS_ACCESS_KEY_ID}}
のように指定し、実際の値は対応するシークレットに設定する。
- AWSアクセスキーID。ここでは
AWS_SECRET_ACCESS_KEY
- AWSシークレットアクセスキー。ここでは
${{SECRET.AWS_SECRET_ACCESS_KEY}}
のように指定し、実際の値は対応するシークレットに設定する。
- AWSシークレットアクセスキー。ここでは
AWS_DEFAULT_REGION
- AWSリージョン。設定は任意。
- ファイルをS3からダウンロードする場合、Canvasで
s3-download
FunctionのEnvironment variablesとして下記を設定する。SOURCE_S3_URI
- ダウンロード元のS3 URI。下記のような値。
s3://{bucket-name}/{prefix(folder-name)}/{object-name}
s3://{bucket-name}/{object-name}
- ダウンロード元のS3 URI。下記のような値。
TARGET_PATH
s3-download
FunctionのOutputのPathと同一の値。
AWS_ACCESS_KEY_ID
- AWSアクセスキーID。ここでは
${{SECRET.AWS_ACCESS_KEY_ID}}
のように指定し、実際の値は対応するシークレットに設定する。
- AWSアクセスキーID。ここでは
AWS_SECRET_ACCESS_KEY
- AWSシークレットアクセスキー。ここでは
${{SECRET.AWS_SECRET_ACCESS_KEY}}
のように指定し、実際の値は対応するシークレットに設定する。
- AWSシークレットアクセスキー。ここでは
AWS_DEFAULT_REGION
- AWSリージョン。設定は任意。
- デプロイボタンを押し、デプロイの完了を待つ。
- ファイルをS3にアップロードする場合、下記操作を行う。
/upload
Endpointの/file
にPOSTリクエストでファイルを送信する。例えば、curlコマンドの場合、下記を実行する。curl -X POST https://studio.{env-id}.studio.exabase.ai/{namespace-id}/s3-upload/upload/file \
-H "Content-Type: multipart/form-data" \
-F "file=@/path/to/your/file"- Pipelineが実行されると、S3にファイルがアップロードされる。
- ファイルをS3からダウンロードする場合、下記操作を行う。
/run-ai
Endpointに空のJSONをPOSTするリクエストを送り、Pipelineをキックする。例えば、curlコマンドの場合、下記を実行する。curl -X POST https://studio.{env-id}.studio.exabase.ai/{namespace-id}/s3-download/run-dl/ \
-H "Content-Type: application/json" \
-d "{}"- Pipelineの処理が完了すると、
output
Entityにファイルが送信される。 /download
Endpointの/data
にGETリクエストを送り、file IDを取得する。例えば、curlコマンドの場合、下記を実行する。得られるJSONは下記のようになる。curl -X GET https://studio.{env-id}.studio.exabase.ai/{namespace-id}/s3-download/download/data \
-H "Content-Type: multipart/form-data"{
"data": {
"fileId":"{your-file-id}",
"layerId":"",
"filename":"output",
"encoding":"7bit",
"mimeType":"application/octet-stream"
}
}/download
Endpointの/file/{file-id}
にGETリクエストを送り、ファイルをダウンロードする。例えば、curlコマンドの場合、下記を実行する。curl https://studio.{env-id}.studio.exabase.ai/{namespace-id}/s3-download/download/file/{file-id} \
> {output-file-path}
他のアセットとの連携
- ファイルをS3にアップロードする場合、 単体での動作確認 と同様に "s3-upload" Workspace のような設定を行い、それを活用して他アセットからアップロードする。
- ファイルをS3からダウンロードする場合、 単体での動作 確認 と同様に "s3-download" Workspace のような設定を行い、それを活用して他アセットからダウンロードする。
関連情報
- Amazon S3
- Amazon S3 (Simple Storage Service) は、AWS のオブジェクトストレージサービスです。
- https://aws.amazon.com/jp/s3/