Boto S3:公开文件

时间:2017-01-14 23:20:14

标签: python amazon-web-services boto

我正在使用Boto3库来获取S3中文件的下载链接。即使将文件的acl添加到public-read,我也会收到拒绝访问权限#34;点击从generate_presigned_post回复中返回的文件网址时的响应。

我的boto代码:

client = boto3.client('s3')
response = client.generate_presigned_post(
    Bucket='bucketname',
    Key='filename.csv',
    Fields={
        'acl': 'public-read'
    },
    ExpiresIn=3600)

如何让这个s3文件可供下载?

1 个答案:

答案 0 :(得分:2)

当您生成预签名帖子时,您可以创建一个唯一的网址,可用于 POST (上传)文件到s3-bucket。

如果您想要提取文件,则应该进行 GET - 请求。

如果存储桶“公开读取”,则无需生成任何预先签名的请求

我还没有对此进行测试,但我想这可以解决下载文件的问题:

key = bucket.get_key('filename.csv')
key.get_contents_to_filename('local_filename.csv')

如果您要为其他人创建下载链接,请生成预先签名 GET 请求