У меня есть список ключей, которые я извлекаю из кеша, и я хочу загрузить связанные объекты (файлы) из S3 без необходимости делать запрос на ключ ,Загрузить объекты S3 по списку ключей с помощью Boto3
Предполагая, что у меня есть следующий массив ключей:
key_array = [
'20160901_0750_7c05da39_INCIDENT_MANIFEST.json',
'20161207_230312_ZX1G222ZS3_INCIDENT_MANIFEST.json',
'20161211_131407_ZX1G222ZS3_INCIDENT_MANIFEST.json',
'20161211_145342_ZX1G222ZS3_INCIDENT_MANIFEST.json',
'20161211_170600_FA68T0303607_INCIDENT_MANIFEST.json'
]
Я пытаюсь сделать что-то похожее на this answer на другой SO вопрос, но изменен следующим образом:
import boto3
s3 = boto3.resource('s3')
incidents = s3.Bucket(my_incident_bucket).objects(key_array)
for incident in incidents:
# Do fun stuff with the incident body
incident_body = incident['Body'].read().decode('utf-8')
Моя конечная цель что я хотел бы избегать использования AWS API отдельно для каждого ключа в списке. Я также хотел бы избежать необходимости вытащить все ведро и отфильтровать/исправить полные результаты.
'избежать удара API AWS отдельно для каждого key' и' избежать необходимости тянуть целое ведро вниз и фильтрации/итерация полный results'. Как еще вы можете это сделать? Ваши ключи следуют шаблону? – helloV
@helloV Я надеялся, что S3 может принять массив (или иначе разделенный список) ключей, которые я отправляю в запросе, и возвращать соответствующие объекты. Я налил документацию как для boto3, так и для AWS, и ничего не нашел, поэтому подумал, что я попрошу здесь. Ключи имеют общий префикс, но ответ из моего кеша может варьироваться в зависимости от параметров поиска. – afilbert
Нет такой функции, если все ваши ключи имеют одинаковый префикс. – helloV