如何使用 gsutil 只制作我的 *.jpg 和 *.png 图片 public?

How can I use gsutil to only make my *.jpg and *.png images public?

我有一个包含许多包含各种不同文件的子目录的存储桶。如何让我的图像仅 public 可访问?以下内容非常适合制作所有内容 public 但我似乎无法过滤扩展名。

$ gsutil -m acl set -R -a public-read gs://mybucket

gsutil 接受 wildcards.

所以这很好用:

$ gsutil -m acl set -R -a public-read gs://mybucket/**/*.jpg
$ gsutil -m acl set -R -a public-read gs://mybucket/**/*.png

我建议使用 gsutil acl ch,它将保留您对象上的所有现有 ACL 并使它们公开可读。这个命令应该可以解决问题:

gsutil -m acl ch -u AllUsers:R gs://mybucket/**/*.png gs://mybucket/**/*.jpg

使用固定 acl(即 acl set -a public-read)可以删除您所做的其他 ACL 更改。