存储桶中的文件在自动构建后失去 "Share publicly" 权限
File In Storage Bucket looses "Share publicly" permission after automated build
我对 Google Cloud 有点陌生,我正在使用存储桶来托管静态网站。
当我的主分支更新时,我通过构建触发器集成了自动构建。当我推送到 GitHub 时,我能够成功地看到更改,但是当更新 index.html 等预先存在的文件时,该文件会失去对 "Share publicly"
的权限
我已经按照下面的教程进行操作,唯一不同的是您的对象权限现在是在平台上的单个文件级别处理的,而不是存储桶的顶级级别。
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"]
如果您没有在存储桶级别配置默认情况下该存储桶中的所有对象都可公开读取,则您需要将权限重新应用到新上传的文件。
如果您知道所有更新的文件都需要设置为公开可读,您可以在 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
我对 Google Cloud 有点陌生,我正在使用存储桶来托管静态网站。
当我的主分支更新时,我通过构建触发器集成了自动构建。当我推送到 GitHub 时,我能够成功地看到更改,但是当更新 index.html 等预先存在的文件时,该文件会失去对 "Share publicly"
的权限我已经按照下面的教程进行操作,唯一不同的是您的对象权限现在是在平台上的单个文件级别处理的,而不是存储桶的顶级级别。
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"]
如果您没有在存储桶级别配置默认情况下该存储桶中的所有对象都可公开读取,则您需要将权限重新应用到新上传的文件。
如果您知道所有更新的文件都需要设置为公开可读,您可以在 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