boto3 通过元数据或标签查找对象

vik*_*kho 5 amazon-s3 amazon-web-services

是否可以通过对象的元数据或标签键/值来搜索S3 存储桶中的对象?(没有对象名称或 etag)

我知道head_object()方法(ref),但它Key的参数中需要 a 。

似乎该get_object()方法也不是解决方案 - 它采用与 相同的参数集head_object(),而与元数据无关。

正如我所见,无论get_*list_*方法还是方法都没有提供任何合适的过滤器。但我相信这样的机会应该在 S3 API 中。

Joh*_*ein 5

号的ListObjects()API调用不接受的搜索条件

您需要检索所有对象的列表,然后调用head_object()以获取元数据。

或者,您可以使用Amazon S3 Inventory,它可以提供一个常规 CSV 文件,其中包含所有对象及其元数据的列表。您的程序可以使用它作为信息源而不是调用ListObjects().

如果您需要可以实时搜索元数据的东西,通常的做法是将此类信息存储在数据库(例如 DynamoDB、RDS、Elasticsearch)中,然后引用该数据库以识别所需的 Amazon S3 对象。