Python-在上传S3图像时将其公开?

Python-在上传S3图像时将其公开?,python,amazon-web-services,amazon-s3,boto,Python,Amazon Web Services,Amazon S3,Boto,我使用这段代码从python将图像上传到S3,但我需要它们立即公开,而不是手动更改权限 im2.save(out_im2, 'PNG') conn = boto.connect_s3(keys) b = conn.get_bucket('example') k = b.new_key('example.png') k.set_contents_from_string(out_im2.getvalue()) 我已经尝试了以下代码: b.set_acl('public-read-write')

我使用这段代码从python将图像上传到S3,但我需要它们立即公开,而不是手动更改权限

im2.save(out_im2, 'PNG')
conn = boto.connect_s3(keys)

b = conn.get_bucket('example')
k = b.new_key('example.png')
k.set_contents_from_string(out_im2.getvalue())
我已经尝试了以下代码:

b.set_acl('public-read-write')
使用ACL 尝试:

根据这一点,您可以在单个项目上设置固定ACL

更改bucket上的acl(正如您使用
b.set_acl
所做的那样),只会影响bucket操作的权限(例如列出bucket中的对象),而不会影响对象操作,例如读取对象(这是您想要的)。有关应用于bucket和对象时不同权限的含义的更多详细信息,请参阅

使用桶策略 但是,根据图像的密钥结构,您可能会发现设置一个bucket策略来授予对给定路径中所有密钥的读取权限更简单。这样,您就不必对任何单个对象执行任何特殊操作

k.set_acl('public-read')