我们正在将服务器迁移到Google云计算引擎,并开始将云存储视为CDN选项。我通过开发者控制台上传了大约1,000个文件,但问题是所有用户的所有对象权限都设置为无。我找不到任何方法来编辑所有权限以授予所有用户读者访问权限。我错过了什么吗?
您可以使用gsutil acl ch
命令执行以下操作:
gsutil -m acl ch -R -g All:R gs://bucket1 gs://bucket2/object ...
哪里:
-m
设置了多线程模式,对于大量对象来说速度更快-R
以递归方式处理存储桶及其所有内容-g All:R
授予所有用户只读访问权限有关详细信息,请参阅acl
documentation。
如果您只需要通过Google Cloud Shell运行单个命令,则可以通过Web浏览器使用gsutil
作为控制台,因为它预装在控制台VM中。
除了使用gsutil acl
命令更改现有ACL之外,还可以使用gsutil defacl
命令在存储桶上设置默认对象ACL,如下所示:
gsutil defacl set public-read gs://«your bucket»
然后,您可以通过以下方式批量上传对象:
gsutil -m cp -R «your source directory» gs://«your bucket»
并且他们将设置正确的ACL。这将比使用Web界面快得多。
您可以使用“predefinedAcl”设置访问控制权限,代码如下。
Storage.Objects.Insert insertObject = client.objects()。insert(,,);
insertObject.setPredefinedAcl("publicRead");
这样可以正常工作
不要错过在桶的对象之后放置快活字符以对每个文件应用更改 - 例如:
gsutil -m acl ch -R -g All:R gs://bucket/files/*
对于'files'文件夹中的所有文件,或者:
gsutil -m acl ch -R -g All:R gs://bucket/images/*.jpg
对于'images'文件夹中的每个jpg文件。