我在 Google Cloud Storage 中有 1000 个文件要公开,或者通常是一个目录层次结构。
在 Web UI 中,我似乎只能一次公开一个。
有没有办法做到这一点。
我在 Google Cloud Storage 中有 1000 个文件要公开,或者通常是一个目录层次结构。
在 Web UI 中,我似乎只能一次公开一个。
有没有办法做到这一点。
跑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
您可以将存储桶中的所有对象设为公开。这是链接。
- 在 Google Cloud Platform Console 中打开 Cloud Storage 浏览器。
- 在存储桶列表中,单击要公开的存储桶的名称。
- 选择页面顶部附近的权限选项卡。
- 单击添加成员按钮。
出现添加成员对话框。- 在成员字段中,输入 allUsers。
- 在 Roles 下拉列表中,选择 Storage 子菜单,然后单击 Storage Object Viewer 选项。
- 单击添加。
公开共享后,公共访问 > 列中的每个对象都会出现一个链接图标。您可以单击此图标以获取对象的 URL。
运行时:gsutil -m acl set -R -a public-read gs://bucket
您为当前存储桶中的所有对象定义公开读取,但是当您上传新文件时,默认情况下它们不会公开。
我发现值得将存储桶默认 acl 定义为 public-readgsutil defacl set public-read gs://bucket
在此处找到的有关托管静态网站的当前(2017 年 10 月)文档指向:
gsutil acl ch -r -u AllUsers:R gs://bucket-name
递归技巧在哪里-r
并-u AllUsers:R
提供公共读取访问权限。
您可以在公共范围内制作所有对象,此链接有更多信息:https ://cloud.google.com/storage/docs/access-control/making-data-public
如果您不能,请在控制台中登录您的存储桶并单击“编辑存储桶权限” - 在添加成员中输入 allUsers。然后选择角色 > 存储 > 存储对象查看器
为了代表 Erik 复制和粘贴,这对我来说始终如一:
使对象组公开可读
要使存储桶中的所有对象公开可读:
CONSOLEGSUTILREST APIS 使用 gsutil iam ch 命令,将 [VALUES_IN_BRACKETS] 替换为适当的值:
gsutil iam ch allUsers:objectViewer gs://[BUCKET_NAME]