使用公共链接上传公共对象到Google Cloud Storage

4

我已经到处搜索,但是找不到解决办法,如何将公共对象上传到我的Google云存储中,我希望一旦图片上传后,任何人都可以在世界范围内查看。

似乎只有在Google云存储中手动单击公共链接才能完成此操作,但我希望可以通过Google的API自动使这些对象变为公共的。 enter image description here


这篇文章可能会对你有所帮助。祝你好运! http://stackoverflow.com/questions/30417893/setting-an-object-to-shared-public-url-when-inserting-into-google-cloud-storage?answertab=active#tab-top - Nguyen Minh Hien
1个回答

4

网页界面没有提供自动将被上传的对象设为公共的方法,但您可以选择以下两种方式之一:

  1. 如果您只想在当前会话期间使对象公开可读,可以使用gsutil命令实现,例如:

    gsutil -m cp -a public-read dir/* gs://your-bucket

  2. 如果您想在今后的所有会话期间使对象公开可读,可以使用以下命令在存储桶中设置默认的对象ACL:

    gsutil defacl set public-read gs://your-bucket

这样做,通过网页界面上传(以及任何其他API请求,例如gsutil cp命令)都将自动使上传的对象成为公共可读状态。


这是否适用于整个目录,还是仅仅是一次性使用?或者说,一旦在目录上设置了这个选项,所有在它之后加载的对象都将是公共读取的吗? - Errol Green
1
该命令将复制'dir'中的所有文件,并将每个单独的文件公开读取上传到'your-bucket'。如果您想上传更多文件,您也必须将它们标记为“public-read”。如果您一次上传多个文件,我还建议使用-m标志。 - Sandeep Dinesh
@SandeepDinesh 感谢你的澄清,我之前不太确定它的使用方式。现在我完全理解了,并且已经成功解决了我的问题。 - Errol Green
我在我的回答中添加了设置默认对象ACL的功能,因为这样可以通过Web界面来实现。 - Mike Schwartz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接