4

假设我在 S3 上设置了以下存储桶

我的桶/我的子桶

而且,我计划为 MySubBucket 之外的网站提供静态媒体(如用户上传的图像等)。S3 配置的当前设置方式似乎无法公开顶级存储桶“MyBucket”,因此为了模仿这一点,您需要在插入后将该存储桶中的每个单独项目设为公开。

您可以公开一个像“MySubBucket”这样的子存储桶,但我目前遇到的问题是试图弄清楚如何调用 boto 将测试图像插入该存储桶?谁能提供一个例子?

谢谢

4

1 回答 1

2

您实际上只需将子存储桶名称和 a/放在文件名之前。下面的代码片段会将一个名为'test.jpg'MySubBucket 的文件放入。使该k.make_public()文件公开,但不一定是存储桶本身。

from boto.s3.connection import S3Connection
from boto.s3.key import Key

connection = S3Connection(AWSKEY,AWS_SECRET_KEY)

bucket = connection.get_bucket('MyBucket')
file = 'test.jpg'
k = Key(bucket)
k.key = 'MySubBucket/' + file
k.set_contents_from_filename(file)
k.make_public()
于 2012-12-05T21:03:09.710 回答