【问题标题】:Google Cloud Storage AllUsers permission doesn't workGoogle Cloud Storage AllUsers 权限不起作用
【发布时间】:2012-11-29 23:44:34
【问题描述】:

我正在尝试创建一个存储桶,该存储桶具有特定用户的存储桶/对象的读/写权限以及仅所有用户的对象的读取权限。

我已经:

  • 创建了一个存储桶,
  • 将此添加到默认 acl 列表中:
<Entry>
    <Scope type="AllUsers"/>
    <Permission>
        READ
    </Permission>
</Entry>

通过:gsutil setdefacl &lt;f&gt; gs://bucket

  • 添加了一个对象 (test.png)

现在我正在尝试使用 url http[s]://storage.cloud.google.com/bucket/test.png 从浏览器访问它,但它会将我带到 google 帐户登录页面。当我使用另一个没有明确权限设置的谷歌账户(不是我用来创建项目/存储桶/对象)登录时,它会显示图片。

新对象上的gsutil getacl 表明 AllUsers 具有 READ 权限,但它的工作方式与 AllAuthenticatedUsers 类似。

关于如何处理权限以按预期工作的任何想法?

【问题讨论】:

    标签: acl google-cloud-storage


    【解决方案1】:

    当您说您将该条目添加到默认 ACL 时,您的意思是您将其添加为 AccessControlList.Entries 中的一个元素,对吗? 如果没有看到完整的 ACL 文本,就很难知道发生了什么。

    而且,由于您要使对象公开可读(为范围 AllUsers 授予 READ 权限),因此您不需要存储桶的默认对象 ACL 中的其他范围;你可以这样做:

    gsutil setdefacl public-read gs://bucket

    然后将对象上传到存储桶中。

    我知道您想为特定用户授予读/写权限,但写权限由存储桶 ACL 控制,而不是对象 ACL(因此也不受存储桶上的默认对象 ACL 控制)。

    请尝试上述方法,如果您在没有先验证的情况下仍然无法通过浏览器访问对象,请告诉我们。

    迈克·施瓦茨, 谷歌云存储团队

    【讨论】:

    • 感谢您的建议。看起来我已经使用权限完成了所有操作,但使用了错误的基本 URL。不知何故,它与storage.googleapis.com/bucket/file 配合得很好
    猜你喜欢
    • 2018-07-20
    • 2019-05-17
    • 2019-09-21
    • 2015-05-15
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    • 2013-11-15
    相关资源
    最近更新 更多