tim*_*all 5 python google-cloud-storage google-cloud-functions
我试图从云函数中访问 Google 云存储中文件的自定义元数据,但它始终返回“无”。
该文件肯定有自定义元数据 - 可以从 GCS 浏览器中看到自定义元数据。
如果我在 Cloud shell 环境中运行代码,我可以成功访问自定义元数据。
但如果我在云函数中运行相同的代码,则返回的 blob.metadata 始终为“None”。
我究竟做错了什么?与 Cloud Shell 相比,我必须在 Cloud Function 中做哪些不同的事情。
from google.cloud import storage
client = storage.Client()
bucket = client.bucket(<my bucket name>)
blob = bucket.get_blob(<my filename>)
metadata = blob.metadata
Run Code Online (Sandbox Code Playgroud)
另请注意, blob.download_as_string() 正确获取了文件内容 - 这只是我无法获取的自定义元数据。
blob.metadata仅返回存储对象的自定义元数据(字典)。None意味着没有自定义元数据。请参阅以下文档metadata:
检索对象的任意/应用程序特定元数据。
用户提供的元数据,以键/值对的形式。
请注意,自定义元数据与固定键元数据不同,您也可以使用Google Cloud Console 中的“编辑元数据”按钮进行编辑。固定密钥元数据包含:
blob.content_type这种特殊类型的元数据可以通过, blob.content_encoding, ...访问(查看完整示例)。
要添加自定义元数据,只需单击同一窗口上的添加项目按钮(编辑元数据)或使用gsutil(请参阅编辑对象元数据文档):
gsutil setmeta -h "x-goog-meta-examplekey:examplevalue" gs://<your-bucket>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5391 次 |
| 最近记录: |