【发布时间】:2017-04-18 00:14:33
【问题描述】:
我正在使用 Python 和 Boto 将图像上传到 S3。如果我添加“任何经过身份验证的 AWS 用户”的被授权者并授予该被授权者上传/删除的权限,我可以让它工作。但是,我从文档和该站点上的几个不同帖子的印象是,这实际上将允许任何经过身份验证的 AWS 用户,而不仅仅是那些经过我的帐户身份验证的用户,来访问我不想要的存储桶。但是,如果我只向帐户所有者授予上传/删除权限,我将无法上传文件 (403),即使我像这样进行身份验证:
s3 = boto.connect_s3(aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
im = Image.open(BytesIO(urllib.urlopen(self.url).read()))
filename = self.url.split('/')[-1].split('.')[0]
extension = self.url.split('.')[-1]
out_im2 = cStringIO.StringIO()
im.save(out_im2, im.format)
key = bucket.new_key(filename + "." + extension)
key.set_contents_from_string(out_im2.getvalue(), headers={
"Content-Type": extension_contenttype_mapping[extension],
})
key.set_acl('public-read')
self.file = bucket_url + filename + "." + extension
在这种情况下我做错了什么?
【问题讨论】:
标签: python django amazon-web-services amazon-s3 boto