Google云端存储:批量修改ACL

问题描述 投票:2回答:4

我们正在将服务器迁移到Google云计算引擎,并开始将云存储视为CDN选项。我通过开发者控制台上传了大约1,000个文件,但问题是所有用户的所有对象权限都设置为无。我找不到任何方法来编辑所有权限以授予所有用户读者访问权限。我错过了什么吗?

google-cloud-storage
4个回答
11
投票

您可以使用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中。


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界面快得多。


0
投票

您可以使用“predefinedAcl”设置访问控制权限,代码如下。

Storage.Objects.Insert insertObject = client.objects()。insert(,,);

insertObject.setPredefinedAcl("publicRead");

这样可以正常工作


0
投票

不要错过在桶的对象之后放置快活字符以对每个文件应用更改 - 例如:

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文件。

© www.soinside.com 2019 - 2024. All rights reserved.