问题
I have to download a file from my S3 bucket
onto my server for some processing. The bucket does not support direct connections and has to use a Pre-Signed URL
.
The Boto3 Docs
talk about using a presigned URL to upload but do not mention the same for download.
回答1:
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)
For another example, see: Presigned URLs — Boto 3 documentation
You can also generate a pre-signed URL using the AWS CLI:
aws s3 presign s3://my-bucket/foo.jpg --expires-in 300
See: presign — AWS CLI Command Reference
来源:https://stackoverflow.com/questions/60163289/how-do-i-create-a-presigned-url-to-download-a-file-from-an-s3-bucket-using-boto3