【问题标题】:Can i search Google Cloud Storage Bucket using metadata values?我可以使用元数据值搜索 Google Cloud Storage Bucket 吗?
【发布时间】:2018-05-13 06:51:36
【问题描述】:
【问题讨论】:
标签:
google-cloud-platform
google-cloud-storage
【解决方案2】:
现在可以通过 API 做到这一点。
设置自定义元数据:
- 访问Viewing and Editing Object Metadata 文档,了解更多信息。
- 使用
gsutil setmeta -h "[METADATA_KEY]:[METADATA_VALUE]" gs://[BUCKET_NAME]/[OBJECT_NAME] 命令。
- [METADATA_KEY] 应以
x-goog-meta- 开头,如自定义元数据文档中所述。所以 [METADATA_KEY] = x-goog-meta-[CUSTOM_VALUE]。注意值中没有空格。
- [METADATA_VALUE] 也应该没有空格。使用
_ 或-。
使用 API 根据对象的 CUSTOM 元数据搜索对象。
此示例适用于 Python,但Listing Objects 文档中支持许多其他语言。
- 列出桶中的对象Sample Code
- 对于找到的每个对象,列出所有元数据。 Sample Code
- 不打印它们,只取
blob.metadata 部分并将其转换为字符串。如果它是默认值,它将是 None,否则它将是您设置的 JSON 格式的自定义元数据键。
- 使用该值执行
== 操作以检查它是否与您正在查找的值兼容并相应地执行任何操作。
- 注意:保存自定义值时不带
x-goog-meta- 前缀。它仅用于在设置元数据时确定该值是自定义的 API 调用。只有第二部分在元数据中可见。例如您使用x-goog-meta-test_metadata,它将显示为test_metadata。
我自己编写了一些代码,这是一个 Python 示例,完全按照我上面的描述进行。你可以找到code in GitHub here。