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

时间:2011-08-17 17:28:20

标签: python amazon-s3 amazon-web-services boto

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

MyBucket / MySubBucket

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

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

由于

1 个答案:

答案 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()