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

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

在networking用户界面中,我似乎只能公开一个。

有没有办法做到这一点。

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

您可以通过在gsutil使用-D标志来看到这一点:

 gsutil -D setacl public-read gs://bucket/obj 

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

我发现,值得定义一个桶默认acl公共读取gsutil defacl set public-read gs://bucket

您可以将桶中的所有对象都公开。 这是链接 。

当前(2017年10月)有关托pipe在此处find的静态网站的文档指向:

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

其中-r是recursion技巧, -u AllUsers:R是公共读取访问。

要代表Erik复制和粘贴,这对我一直工作:

使对象组公开可读

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

CONSOLEGSUTILREST APIS使用gsutil iam ch命令,用适当的值replace[VALUES_IN_BRACKETS]:

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