假设我在 S3 上设置了以下存储桶
我的桶/我的子桶
而且,我计划为 MySubBucket 之外的网站提供静态媒体(如用户上传的图像等)。S3 配置的当前设置方式似乎无法公开顶级存储桶“MyBucket”,因此为了模仿这一点,您需要在插入后将该存储桶中的每个单独项目设为公开。
您可以公开一个像“MySubBucket”这样的子存储桶,但我目前遇到的问题是试图弄清楚如何调用 boto 将测试图像插入该存储桶?谁能提供一个例子?
谢谢
假设我在 S3 上设置了以下存储桶
我的桶/我的子桶
而且,我计划为 MySubBucket 之外的网站提供静态媒体(如用户上传的图像等)。S3 配置的当前设置方式似乎无法公开顶级存储桶“MyBucket”,因此为了模仿这一点,您需要在插入后将该存储桶中的每个单独项目设为公开。
您可以公开一个像“MySubBucket”这样的子存储桶,但我目前遇到的问题是试图弄清楚如何调用 boto 将测试图像插入该存储桶?谁能提供一个例子?
谢谢
您实际上只需将子存储桶名称和 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()