使用gcloud-python在Google云端存储中设置元数据

Rem*_*ing 5 python google-cloud-storage gcloud-python google-cloud-python

我正在尝试使用文件上传文件到Google云端存储gcloud-python并设置一些自定义元数据属性.为了尝试这个,我创建了一个简单的脚本.

import os

from gcloud import storage

client = storage.Client('super secret app id')
bucket = client.get_bucket('super secret bucket name')

blob = bucket.get_blob('kirby.png')
blob.metadata = blob.metadata or {}
blob.metadata['Color'] = 'Pink'
with open(os.path.expanduser('~/Pictures/kirby.png'), 'rb') as img_data:        
    blob.upload_from_file(img_data)
Run Code Online (Sandbox Code Playgroud)

我可以上传文件内容.上传文件后,我可以从开发者控制台手动设置元数据并检索它.

我无法弄清楚如何以编程方式上传元数据.

bos*_*ter 9

我们在问题跟踪器上进行了讨论,它在实现中出现了一个"错误",或者至少是让用户措手不及的东西.

访问metadata通道blob.metadata是只读的.因此,当通过改变那个结果

blob.metadata['Color'] = 'Pink'
Run Code Online (Sandbox Code Playgroud)

它实际上并没有改变存储的元数据blob.

目前的"修复"只是建立起来

metadata = {'Color': 'Pink'}
blob.metadata = metadata
Run Code Online (Sandbox Code Playgroud)

  • 按此处所示设置元数据后,您必须调用“blob.patch()”。那么这对我来说就很好了。 (6认同)