Google Cloud Storage AllUsers权限不起作用

时间:2012-12-12 09:44:14

标签: acl google-cloud-storage

我正在尝试使用针对特定用户的存储桶/对象的读/写权限和仅针对AllUsers的对象的读取权限。

我已经:

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

通过:gsutil setdefacl <f> gs://bucket

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

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

新对象上的

gsutil getacl表明AllUsers的READ权限已经到位,但它的工作方式与AllAuthenticatedUsers类似。

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

1 个答案:

答案 0 :(得分:1)

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

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

gsutil setdefacl public-read gs:// bucket

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

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

如果您在未经过首次身份验证的情况下仍然无法通过浏览器访问对象,请尝试以上操作并告诉我们。

迈克施瓦茨, Google云端存储团队