谷歌云存储制作篮子公开可见

时间:2014-06-04 08:12:26

标签: google-cloud-storage

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

我尝试更改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="
  }
...

但是,当我向存储桶添加新文件时,我没有公开共享&#34;选中复选框。

我错过了什么?

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

使用publically viewable更轻松地将GCS Bucket设置为 gsutil ,而不是JSON API:

使用 acl 设置当前存储桶对象的公共读取

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

使用 defacl 设置为以后上传的默认设置:

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