假设我在S3上设置了以下存储桶
MyBucket / MySubBucket
并且,我计划为MySubBucket的网站提供静态媒体(就像用户上传的图片等)。当前设置S3配置的方式,没有办法让顶级存储桶“MyBucket”公开,所以要模仿它,你需要在插入后公开该存储桶中的每个项目。 / p>
你可以像“MySubBucket”那样公开一个子桶,但我现在遇到的问题是试图弄清楚如何调用boto将测试图像插入到该桶中?任何人都可以提供一个例子吗?
由于
答案 0 :(得分:2)
您实际上只需要将子存储桶名称和/
放在文件名之前。以下代码段将名为'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()