繁体   English   中英

AWS S3-403禁止读取文件-Boto Python

[英]AWS S3 - 403 forbidden reading file - Boto Python

我可以使用boto创建文件:

s3 = boto.connect_s3(aws_access_key_id='XXXX', aws_secret_access_key='XXX')
pb = s3.get_bucket(b_path)
k = Key(pb)
k.name = f_path
k.set_contents_from_string(content)

当我尝试读取相同的文件时,我得到:

boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden

如果我转到S3 Web Inteface,并设置对所有人的读/写权限,那么现在我可以访问该文件了。

PS:创建文件时,所有者是另一个用户,不是我的用户。 有问题吗?

如果使用第三方凭据将对象上传到您的存储桶,则默认情况下,您作为存储桶拥有者对该对象没有任何所有权(第三方拥有)。

在这种情况下,您作为存储桶拥有者所能做的就是列出对象并将其删除(您可以这样做,因为您要为存储在存储桶中的存储空间付费)。 特别是,您不能读取或修改对象的ACL,也无法获取对象(除非所有者明确授予您读取权限或将对象设为公共)。

要控制该对象,您需要上载器提供一个罐装ACL,以便您完全控制。 上传者可以通过在调用put()时提供ACL ='bucket-owner-full-control'来实现此目的。 另外,我相信您可以提供GrantFullControl ='xyz'来指示受赠者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM