Appengine:GCS如何在python中公开读取单个cloudstorage文件

时间:2015-08-10 13:30:19

标签: google-app-engine google-cloud-storage google-app-engine-python

我使用googlecloudstorageclient来操作存储桶中的文件。该存储桶不是也不应该是公共可读的,但是我需要为单个文件设置公共读取({' x-goog-acl':' public-read'}) python代码。

如何在python中以编程方式将现有GCS文件中的ACL或元数据更改为公开读取或删除?

我尝试了copy2(),但如果我传入权限,它会将内容类型重置为二进制/八位字节流。

https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/functions

2 个答案:

答案 0 :(得分:0)

使用listbucket方法遍历存储桶并从GCSFileStat获取每个文件的内容类型。

现在使用copy2方法并使用GCSFileStat中的值提供元数据dict并修改该dict中的ACL。

答案 1 :(得分:0)

您可以使用objects patch更改对象的acl或元数据。 This code example(使用insert acl)向您展示如何使用cloud storage apiclient并使用appengine发送授权的api请求。