7

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

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)

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

我不知道如何以编程方式上传元数据。

4

2 回答 2

12

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

访问metadataviablob.metadata是只读的。因此,当通过改变该结果时

blob.metadata['Color'] = 'Pink'

它实际上并没有更改存储在blob.

当前的“修复”是建立

metadata = {'Color': 'Pink'}
blob.metadata = metadata
于 2015-10-24T16:39:56.507 回答
2
blob.content_disposition = "attachment"
blob.patch()
于 2020-10-09T04:52:23.497 回答