我们正在将服务器迁移到Google Cloud Compute Engine,并开始将云存储视为CDN选项。我通过开发者控制台上传了大约1,000个文件,但问题是所有用户的所有对象权限都设置为无。我找不到任何方法来编辑所有权限以授予所有用户读者访问权限。我错过了什么吗?
答案 0 :(得分:11)
您可以使用gsutil acl ch
命令执行以下操作:
gsutil -m acl ch -R -g All:R gs://bucket1 gs://bucket2/object ...
其中:
-m
设置多线程模式,对于大量对象来说更快-R
以递归方式处理存储桶及其所有内容-g All:R
授予所有用户只读权限有关详细信息,请参阅acl
documentation。
如果您只需要通过gsutil
运行单个命令,则可以通过Web浏览器使用Google Cloud Shell作为控制台,因为它预装在控制台虚拟机中。
答案 1 :(得分:1)
除了使用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界面快得多。
答案 2 :(得分:0)
您可以使用" predefinedAcl"设置访问控制权限。代码如下。
Storage.Objects.Insert insertObject = client.objects()。insert(,,,);
insertObject.setPredefinedAcl("publicRead");
这样可以正常使用
答案 3 :(得分:0)
不要错过在存储桶的对象之后添加欢乐字符以将更改应用于每个文件的示例-
gsutil -m acl ch -R -g All:R gs://bucket/files/*
对于“文件”文件夹中的所有文件,或者:
gsutil -m acl ch -R -g All:R gs://bucket/images/*.jpg
“图像”文件夹中的每个jpg文件。