はじめに
前回の記事では、署名付きURL で S3 にファイルをアップロードする方法を確認しました。今回の記事では、ダウンロードする方法を確認しましょう。
AWS マネージメントコンソール
前回アップロードしたファイルを選択して、Share with a presigned URL を選択します。
有効期限を指定して、Create presigned URL を押します。
マネージメントコンソールの画面上部に、通知が表示されます。Copy presigned URL を押します。
こんな感じの 署名付き URL が生成されました。(この URL は既に有効期限切れでアクセスできません)
https://s3-presigned-test01.s3.ap-northeast-1.amazonaws.com/this-is-filename.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=xxxxxx%2F20220223%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20220223T105747Z&X-Amz-Expires=1&X-Amz-SignedHeaders=host&X-Amz-Signature=0813f0e5753f557a121acc3184533545cdc12fce2f7007865d8c9dbe1bfbc6a5
ブラウザからアクセスしてみると、通常通りダウンロードできました
ファイルも見ています
AWS CLI
AWS CLI で aws s3 presign
コマンドで、ダウンロード用署名付き URL を生成できます。
aws s3 presign s3://s3-presigned-test01/this-is-filename.txt --expires-in 60
実行例 (既に有効期限切れでアクセスできません)
https://s3-presigned-test01.s3.ap-northeast-1.amazonaws.com/this-is-filename.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=xxxxxx%2F20220223%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20220223T105747Z&X-Amz-Expires=1&X-Amz-SignedHeaders=host&X-Amz-Signature=0813f0e5753f557a121acc3184533545cdc12fce2f7007865d8c9dbe1bfbc6a5
こちらも同様に、ブラウザからアクセスしてみると、通常通りダウンロードできました
ファイルも見ています
有効期限切れの場合
このようにエラーになります