我想让存储桶公开可读(因此添加的每个文件都会有一个"共享的公共链接")
我尝试更改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
答案 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