我可以使用元数据值搜索 Google Cloud Storage Bucket 吗?

8 google-cloud-storage google-cloud-platform

我在 Google Cloud Storage Bucket 中大量使用元数据,现在我有一个用例,我需要使用一些元数据字段值搜索文件。我已经查看了整个文档(https://cloud.google.com/storage/docs/gsutil/addlhelp/WorkingWithObjectMetadata),但我没有找到与元数据搜索相关的任何内容,有什么我可以这样做的原因吗?我应该继续自己建造一些东西吗?

And*_*nir 7

现在可以使用 API 来做到这一点。

设置自定义元数据:

  • 有关更多信息,请访问查看和编辑对象元数据文档。
  • 使用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 根据对象的自定义元数据搜索对象。

此示例适用于 Python,但列表对象文档中还支持许多其他语言。

  • 列出存储桶中的对象示例代码
  • 对于找到的每个对象,列出所有元数据。示例代码
  • 不打印它们,blob.metadata只取一部分并将其转换为字符串。如果它是默认值,否则None它将是您设置的 JSON 格式的自定义元数据密钥。
  • 使用该值执行==操作以检查它是否与您正在查找的值兼容并相应地执行任何操作。
  • 注意:保存自定义值时不带x-goog-meta-前缀。它仅用于在设置元数据时确定 API 调用该值是自定义的。只有第二部分在元数据中可见。例如,您使用x-goog-meta-test_metadata它将显示为test_metadata

我自己编写了一些代码,这是一个 Python 示例,它完全按照我上面描述的方式进行。您可以在 GitHub 中找到代码

  • 作者示例位于 https://github.com/andrikosrikos/Google-Cloud-Support/blob/master/Bucket/search_objects_custom_metadata.py 和文档位于 https://cloud.google.com/storage/docs/listing-objects#storage -list-objects-python 只是确认不支持对元数据属性的搜索。示例获取存储桶中的所有对象及其元数据。它甚至不尝试显示结果的客户端过滤。 (3认同)

jte*_*ace 6

不,GCS 不提供搜索功能。

  • 这个答案仍然是正确的。 (2认同)