python – 使用boto在S3上的子存储桶中插入项目

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

MyBucket / MySubBucket

而且,我打算为MySubBucket的网站提供静态媒体(就像用户上传的图片等).当前设置S3配置的方式,没有办法让顶级存储桶“MyBucket”公开,所以要模仿它,你需要在插入后将该存储桶中的每个单独项目公开.

你可以像“MySubBucket”那样公开一个子桶,但我现在遇到的问题是试图弄清楚如何调用boto将测试图像插入到该桶中?谁能提供一个例子?

谢谢

最佳答案 实际上你只需要在文件名之前放置子存储桶名称和/.以下代码片段将一个名为“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()
点赞