谷歌云存储AllUsers权限不起作用
问题描述:
我正在尝试为特定用户创建存储桶/对象的读/写权限并为只有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相同。
有关权限按预期工作的操作方法的任何建议?
答
当你说你添加到默认ACL的条目,你的意思是你添加它作为AccessControlList.Entries内的一个元素,是否正确? 在看不到完整的ACL文本的情况下知道发生了什么有些困难。
但是,由于您正在使对象公开可读(对作用域AllUsers进行READ权限),因此在存储区的默认对象ACL中不需要额外的作用域;你可以简单地做:
的gsutil setdefacl公众阅读的GS://桶
,然后上传对象桶。
我知道你希望授予特定用户读/写权限,但写权限由斗式ACL,而不是对象ACL(因此也没有对桶的预设物件ACL)来控制。
请尝试上面的内容,并告诉我们您是否仍然无法通过浏览器访问对象,而无需先进行身份验证。
Mike Schwartz, Google Cloud Storage团队
感谢您的建议。看起来我已经做了一切正确的权限,但使用了错误的基本网址。不知何故,它可以在http://storage.googleapis.com/bucket/file中正常工作 – tuxSlayer