web-dev-qa-db-ja.com

署名付きURLを使用して、Boto3を使用してS3バケットからファイルをダウンロードするにはどうすればよいですか?

何らかの処理を行うには、S3バケットからサーバーにファイルをダウンロードする必要があります。バケットは、直接接続をサポートしていませんおよびあり署名済みURLを使用します。


Boto3ドキュメントでは、署名付きURLを使用したアップロードについて説明していますが、ダウンロードについては言及していません。

3
Varun Shridhar
import boto3

s3_client = boto3.client('s3')

BUCKET = 'my-bucket'
OBJECT = 'foo.jpg'

url = s3_client.generate_presigned_url(
    'get_object',
    Params={'Bucket': BUCKET, 'Key': OBJECT},
    ExpiresIn=300)

print(url)

別の例については、以下を参照してください。 署名済みURL — Boto 3のドキュメント

AWS CLIを使用して署名済みURLを生成することもできます。

aws s3 presign s3://my-bucket/foo.jpg --expires-in 300

参照: presign — AWS CLIコマンドリファレンス

4
John Rotenstein