我使用googlecloudstorageclient来操作存储桶中的文件。该存储桶不是也不应该是公共可读的,但是我需要为单个文件设置公共读取({' x-goog-acl':' public-read'}) python代码。
如何在python中以编程方式将现有GCS文件中的ACL或元数据更改为公开读取或删除?
我尝试了copy2(),但如果我传入权限,它会将内容类型重置为二进制/八位字节流。
https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/functions
答案 0 :(得分:0)
使用listbucket方法遍历存储桶并从GCSFileStat获取每个文件的内容类型。
现在使用copy2方法并使用GCSFileStat中的值提供元数据dict并修改该dict中的ACL。
答案 1 :(得分:0)
您可以使用objects patch更改对象的acl或元数据。 This code example(使用insert acl)向您展示如何使用cloud storage apiclient并使用appengine发送授权的api请求。