1

我对谷歌云有点陌生,我正在使用存储桶来托管一个静态网站。

当我的主分支更新时,我已经通过构建触发器集成了自动化构建。当我推送到 GitHub 时,我成功地看到了更改,但是当 index.html 等预先存在的文件被更新时,该文件失去了“公开分享”的权限

我已经按照下面的教程进行操作,唯一的区别是您现在在平台上的单个文件级别而不是存储桶的顶层处理对象权限。

https://cloud.google.com/community/tutorials/automated-publishing-container-builder

这是我的 cloudbuild.yaml 文件

steps:
  - name: gcr.io/cloud-builders/gsutil
    args: ["-m", "rsync", "-r", "-c", "-d", ".", "gs://www.mysite.com"]
4

1 回答 1

0

如果您未在存储桶级别配置默认情况下该存储桶中的所有对象均可公开读取,则您需要将权限重新应用于新上传的文件。

如果您知道所有更新的文件都需要设置为公开可读,则可以在 rsync 命令中使用 -a 选项并使用名为“public-read”的 canned_acl。您的 cloudbuild.yaml 文件如下所示:

steps:
  - name: gcr.io/cloud-builders/gsutil
    args: ["-m", "rsync", "-a", "public-read", "-r", "-c", "-d", ".", "gs://www.mysite.com"]

如果您不想一次将所有对象设置为公开可读,则需要通过列出对象并使用以下命令应用权限来为每个对象设置权限:

gsutil acl ch -u AllUsers:R gs://nameBucket/dir/namefile.ext
于 2018-04-18T09:59:13.953 回答