如何在Google云端存储中公开多个文件?

时间:2013-01-17 02:42:46

标签: cloud google-cloud-storage

我在Google云端存储中有1000个文件可以公开,或者通常是目录层次结构。

在网络用户界面中,我似乎只能公开制作一个。

有没有办法做到这一点。

6 个答案:

答案 0 :(得分:87)

运行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

答案 1 :(得分:51)

当您运行:gsutil -m acl set -R -a public-read gs://bucket时,您可以为存储桶中当前所有对象定义公共读取,但是当您上传新文件时,默认情况下它们不会公开。

我发现值得将存储桶默认值acl定义为public-read gsutil defacl set public-read gs://bucket

答案 2 :(得分:15)

您可以公开存储桶中的所有对象。这是link

  
      
  1. 在Google云端平台控制台中打开云端存储浏览器。
  2.   
  3. 在存储桶列表中,单击要公开的存储桶名称。
  4.   
  5. 选择页面顶部附近的“权限”标签。
  6.   
  7. 单击“添加成员”按钮   将出现“添加成员”对话框。
  8.   
  9. 在“成员”字段中,输入allUsers。
  10.   
  11. 在“角色”下拉列表中,选择“存储”子菜单,然后单击“存储对象查看器”选项。
  12.   
  13. 单击“添加”。
  14.         

    公开分享后,系统会显示公共访问>列中每个对象的链接图标。您可以单击此图标以获取对象的URL。

答案 3 :(得分:6)

关于托管静态网站的当前(2017年10月)文档here指向:

gsutil acl ch -r -u AllUsers:R gs://bucket-name

-r执行递归技巧,-u AllUsers:R赋予公众读取权限。

答案 4 :(得分:5)

最简单的方法是使用控制台。

点击“编辑存储桶权限”

enter image description here

在“添加成员”中输入allUsers。 然后Select Role> Storage> Storage Object Viewer

注意!这将向互联网上的所有人授予对该选定存储桶中所有对象的读取权限。

enter image description here

答案 5 :(得分:1)

为了代表Erik进行复制和粘贴,这对我来说始终如一:

  

使对象组可公开阅读

     

使桶中的所有对象可公开读取:

     

CONSOLEGSUTILREST APIS使用gsutil iam ch命令替换   [VALUES_IN_BRACKETS]具有适当的值:

 gsutil iam ch allUsers:objectViewer gs://[BUCKET_NAME]