2012-12-12 49 views
1

我正在尝试为特定用户创建存储桶/对象的读/写权限并为只有AllUsers的对象读取权限。谷歌云存储AllUsers权限不起作用

我有:

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

gsutil setdefacl <f> gs://bucket

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

现在我试图从浏览器访问此URL http[s]://storage.cloud.google.com/bucket/test.png,但它需要我到Google帐户登录页面。当我登录另一个谷歌ACC(不是我用来创建项目/桶/对象),没有明确的权利设置,它显示图片。

gsutil getacl在新对象上显示AllUsers具有READ权限,但它的工作方式与AllAuthenticatedUsers相同。

有关权限按预期工作的操作方法的任何建议?

回答

1

当你说你添加到默认ACL的条目,你的意思是你添加它作为AccessControlList.Entries内的一个元素,是否正确? 在看不到完整的ACL文本的情况下知道发生了什么有些困难。

但是,由于您正在使对象公开可读(对作用域AllUsers进行READ权限),因此在存储区的默认对象ACL中不需要额外的作用域;你可以简单地做:

的gsutil setdefacl公众阅读的GS://桶

,然后上传对象桶。

我知道你希望授予特定用户读/写权限,但写权限由斗式ACL,而不是对象ACL(因此也没有对桶的预设物件ACL)来控制。

请尝试上面的内容,并告诉我们您是否仍然无法通过浏览器访问对象,而无需先进行身份验证。

Mike Schwartz, Google Cloud Storage团队

+0

感谢您的建议。看起来我已经做了一切正确的权限,但使用了错误的基本网址。不知何故,它可以在http://storage.googleapis.com/bucket/file中正常工作 – tuxSlayer