【问题标题】:google cloud storage making backet publically viewable谷歌云存储使购物篮公开可见
【发布时间】:2016-08-10 15:35:31
【问题描述】:

我想让存储桶公开可读(因此添加的每个文件都会有一个“共享的公开链接”)

我尝试从 JSON API 更改更新存储桶(目前来自 API 参考 (https://developers.google.com/storage/docs/json_api/v1/buckets/update) 上的“试用” 并添加到桶中predefinedAcl:PublicRead

我得到的反应似乎正是我所需要的:

...
  {

   "kind": "storage#bucketAccessControl",
   "id": "<bucket name>/allUsers",
   "selfLink": "https://content.googleapis.com/storage/v1/b/<bucket name>/acl/allUsers",
   "bucket": "<bucket name>",
   "entity": "allUsers",
   "role": "READER",
   "etag": "CAI="
  }
...

但是,当我将新文件添加到存储桶时,我没有选中“公开共享”复选框。

我错过了什么?

** 编辑 ** json 相关命令的直接链接(感谢接受的答案): https://developers.google.com/storage/docs/json_api/v1/defaultObjectAccessControls/update

【问题讨论】:

    标签: google-cloud-storage


    【解决方案1】:

    您是否混淆了存储桶和对象 ACL?将存储桶 ACL 更改为公共读取将允许人们列出存储桶内容。要下载对象本身,您需要将每个对象 ACL 设置为公共读取。最后,为了让未来的对象默认公开可读,您可以将存储桶的默认对象 ACL 更改为 public-read(另请参阅full GCS docs)。

    【讨论】:

    • 我的印象是predefinedAcl:PublicRead 是默认对象ACL...
    【解决方案2】:

    使用 gsutil 将 GCS 存储桶设置为 publically viewable 比 JSON API 更容易:

    使用 acl当前存储桶对象

    设置公开读取
    gsutil -m acl set -R -a public-read gs://BUCKET_NAME
    

    使用 defacl未来上传设置为默认值:

    gsutil -m defacl set public-read gs://BUCKET_NAME
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-17
      • 1970-01-01
      • 2023-02-08
      • 2017-02-10
      • 2020-09-10
      • 2016-10-12
      • 2018-08-11
      相关资源
      最近更新 更多