对于Google云端存储中由Appengine创建的文件,存储桶拥有者没有完全控制权限。
我无法以这种方式设置ACL :(同时具有公开阅读权和所有者完全控制权)
GcsFileOptions options = new GcsFileOptions.Builder().acl("bucket-owner-full-control;public-read").build();
这里有什么解决方案?
不幸的是,您不能一次使用多个罐头ACL。没有罐头ACL意味着“让存储桶拥有者完全控制该对象,并使它公开可见”。同样不幸的是,我不相信GcsFileOptions提供了一种简单的方法来指定自定义ACL(尽管我可能会错过它,但是任何一个知道它的人都应该随时对其进行编辑)。
一种可能是更改存储桶中新对象的默认ACL,然后根本不显式设置ACL。您可以使用gsutil轻松为匿名用户添加默认的读取权限:
$> gsutil defacl ch -g AllUsers:R gs://mybucket
(注意:有一个类似的命令,gsutil acl
它控制存储桶或对象ACL,而不是存储桶中新创建的对象的默认ACL。很容易混淆两者)
注意:这会影响在此存储桶中创建的所有未指定ACL的对象,如果您还在出于其他目的在此存储桶中创建其他对象并且依赖于特定的默认ACL,则这可能不合适。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句