【问题标题】:AWS S3 - 403 forbidden reading file - Boto PythonAWS S3 - 403 禁止读取文件 - Boto Python
【发布时间】:2017-04-03 14:21:13
【问题描述】:

我可以使用 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 界面,并设置每个人的读/写权限,现在我可以访问该文件。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    要控制该对象,您需要上传者提供一个可让您完全控制的预设 ACL。上传者可以通过在调用 put() 时提供 ACL='bucket-owner-full-control' 来做到这一点。或者,我相信您可以提供 GrantFullControl='xyz',指明受让人。

    【讨论】:

      猜你喜欢
      • 2020-11-07
      • 2021-07-09
      • 2022-01-27
      • 1970-01-01
      • 2017-09-07
      • 2017-10-30
      • 2020-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多