Можно ли фильтровать объекты AWS S3 на основе определенной записи метаданных? - PullRequest
0 голосов
/ 13 декабря 2018

Я использую 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))

1 Ответ

0 голосов
/ 13 декабря 2018

Нет.Команда list_objects() не принимает фильтр.

Вам необходимо вызвать head_object(), чтобы получить метаданные для каждого отдельного объекта.

В качестве альтернативы, вы можетеактивировать Amazon S3 Inventory - Amazon Simple Storage Service , который может ежедневно предоставлять список всех объектов с метаданными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...