如何使用 Boto3 创建预签名 URL 以从 S3 存储桶下载文件?

Var*_*har 4 download amazon-s3 amazon-web-services python-3.x boto3

我必须从S3 bucket我的服务器上下载一个文件进行一些处理。存储桶不支持直接连接,必须使用Pre-Signed URL.


Boto3 Docs说说使用presigned网址上传,但并没有提到对于下载是相同的。

Joh*_*ein 12

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)
Run Code Online (Sandbox Code Playgroud)

另一个示例,请参阅:预签名 URL — Boto 3 文档

您还可以使用 AWS CLI 生成预签名 URL:

aws s3 presign s3://my-bucket/foo.jpg --expires-in 300
Run Code Online (Sandbox Code Playgroud)

请参阅:presign — AWS CLI 命令参考

  • 这个答案展示了如何生成预签名的网址,但不展示如何下载文件。 (10认同)