如何将 gcloud 存储桶文件夹中的所有文件更改为 public?

How can I change all files as public in folder of gcloud bucket?

我目前正在寻找一种方法来将 gcloud 存储桶文件夹中的所有文件的权限设置为 public。

我需要单独设置权限

已经参考了google个文档(https://cloud.google.com/storage/docs/access-control/making-data-public),但只找到一项一项的修改。 (我不能使用对象应用方式)

是否有任何方法可以将 gcloud 存储桶中文件中的所有文件的权限更改为 public?

要将存储桶文件夹中的所有文件更改为 public,您可以 运行:

gsutil acl -r ch -u AllUsers:R gs://[BUCKET_NAME]/[FOLDER_NAME]/*

请注意,-r 标志还会使 public 原始文件夹中子文件夹内的所有文件(即 gs://[BUCKET_NAME]/ [FOLDER_NAME]/[FOLDER_2]/FILE 是 public)。不想要那种效果就去掉

您还可以使用 -m flag 到 运行 操作 i.n 并行,方法是在 gsutilacl 之间添加它(即 gsutil -m acl)

此方法依赖于wildcards(*)的使用,您也可以将它们用于"filter"文件

  • gs://bucket/data/prefix* 将对所有以 "prefix"
  • 开头的文件执行操作
  • gs://bucket/data/*suffix 将过滤以该后缀结尾的文件
  • gs://bucket/data/* 将使用所有文件

documentation.

中还有其他操作(我只是列出了基础知识)