我在Google Cloud Storage中有1000个文件要公开,或者一般来说是目录层次结构。
在Web UI中,我似乎一次只能公开一个。
有某种方法可以做到这一点。
Answers:
跑 gsutil -m acl set -R -a public-read gs://bucket
-m
发出多个请求。-R
问题要求您存储桶中的每个对象。-a
问题要求为每个对象的每个版本。请参阅gsutil help acl
以获取更多信息。
在API层,gsutil发出以下HTTP请求:
PUT /bucket/obj?acl HTTP/1.1
Host: storage.googleapis.com
x-goog-acl: public-read
您可以通过将-D
标志与结合使用来查看gsutil
:
gsutil -D setacl public-read gs://bucket/obj
运行时:gsutil -m acl set -R -a public-read gs://bucket
为存储桶中当前所有对象定义公共读取,但是在上载新文件时,默认情况下它们将不是公共的。
我发现值得将存储桶默认acl定义为public-read gsutil defacl set public-read gs://bucket
gsutil defacl set public-read gs://bucket
适用于所有将来的文件,包括子目录中的文件。忽略Plastly Grove的评论。
您可以将存储桶中的所有对象设为公开。这是链接。
- 在Google Cloud Platform Console中打开Cloud Storage浏览器。
- 在存储桶列表中,单击要公开的存储桶的名称。
- 选择页面顶部附近的“权限”标签。
- 单击添加成员按钮。
出现“添加成员”对话框。- 在成员字段中,输入allUsers。
- 在“角色”下拉列表中,选择“存储”子菜单,然后单击“存储对象查看器”选项。
- 单击添加。
公开共享后,公共访问>列中的每个对象都会显示一个链接图标。您可以单击此图标来获取对象的URL。