何らかの処理を行うには、S3バケットからサーバーにファイルをダウンロードする必要があります。バケットは、直接接続をサポートしていませんおよびあり署名済みURLを使用します。
Boto3ドキュメントでは、署名付きURLを使用したアップロードについて説明していますが、ダウンロードについては言及していません。
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