是否可以根据某些元数据条目过滤 AWS S3 对象?

Is it possible to filter AWS S3 objects based on certain metadata entry?

我正在使用 Python 3.6 和 boto3 库来处理 s3 存储桶中的一些对象。我创建了一些带有元数据条目的 S3 对象。例如,

bucketName = 'Boto3'
objectKey = 'HelloBoto.txt'
metadataDic = {'MetadataCreator':"Ehxn"}

现在我想知道是否可以过滤并仅获取那些具有特定元数据条目的对象,例如,

for obj in s3Resource.Bucket(bucketName).objects.filter(Metadata="Ehsan ul haq"):
    print('{0}'.format(obj.key))

没有。 list_objects() 命令不接受过滤器。

您需要调用 head_object() 来获取每个单独对象的元数据。

或者,您可以激活 Amazon S3 Inventory - Amazon Simple Storage Service,它可以提供包含元数据的所有对象的每日列表。