使用 gcloud-python 在 Google 云存储中设置元数据
Set metadata in Google Cloud Storage using gcloud-python
我正在尝试使用 gcloud-python
将文件上传到 Google 云存储并设置一些自定义元数据属性。为了尝试这个,我创建了一个简单的脚本。
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)
我可以上传文件内容。上传文件后,我可以从开发者控制台手动设置元数据并检索它。
我不知道如何以编程方式上传元数据。
我们 discussed 在问题跟踪器上,它在实现中出现了 "bug",或者至少让用户措手不及。
通过 blob.metadata
访问 metadata
是只读的。因此,当通过
改变该结果时
blob.metadata['Color'] = 'Pink'
它实际上并没有改变存储在 blob
上的元数据。
目前的"fix"是刚刚建立
metadata = {'Color': 'Pink'}
blob.metadata = metadata
blob.content_disposition = "attachment"
blob.patch()
我正在尝试使用 gcloud-python
将文件上传到 Google 云存储并设置一些自定义元数据属性。为了尝试这个,我创建了一个简单的脚本。
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)
我可以上传文件内容。上传文件后,我可以从开发者控制台手动设置元数据并检索它。
我不知道如何以编程方式上传元数据。
我们 discussed 在问题跟踪器上,它在实现中出现了 "bug",或者至少让用户措手不及。
通过 blob.metadata
访问 metadata
是只读的。因此,当通过
blob.metadata['Color'] = 'Pink'
它实际上并没有改变存储在 blob
上的元数据。
目前的"fix"是刚刚建立
metadata = {'Color': 'Pink'}
blob.metadata = metadata
blob.content_disposition = "attachment"
blob.patch()