我试图从一个云函数中访问Google云存储中文件的自定义元数据,但它总是返回“None”。在
文件上肯定有自定义元数据-可以从GCS浏览器查看自定义元数据。
如果我在云shell环境中运行代码,我可以成功地访问自定义元数据。
但如果我在云函数中运行相同的代码,则返回blob.元数据总是“无”。
我做错什么了?与云Shell相比,我在云函数中有什么不同之处呢。在
from google.cloud import storage
client = storage.Client()
bucket = client.bucket(<my bucket name>)
blob = bucket.get_blob(<my filename>)
metadata = blob.metadata
还要注意blob.download_as_字符串()正确地获取了文件内容-这只是我无法获取的自定义元数据。在
事实上blob.元数据不会显示用户元数据,您必须添加斑点补丁()和元数据将出现在blob.元数据变量
要保存用户元数据,可以设置blob.元数据然后打电话斑点补丁添加或修改元数据,或blob.更新删除此blob的用户元数据
blob.metadata
只返回存储对象的custom metadata(dict)。None
表示没有自定义元数据。参见the docs of ^{documentation of ^{} resource (API) 指定{}是:
请注意,自定义元数据与fixed-key metadata不同,您也可以使用Google云控制台中的edit metadata按钮进行编辑。固定密钥元数据包含:
这种特定类型的元数据可以通过
blob.content_type
,blob.content_encoding
。。。(勾选a complete example)。在要添加自定义元数据,只需单击同一窗口上的添加项按钮(编辑元数据)或使用
gsutil
(请参见Editing object metadata docs):相关问题 更多 >
编程相关推荐