список ошибок с несколькими префиксами aws для получения значения содержимого ключа

#python #amazon-web-services #boto3

Вопрос:

Код

 import boto3
from boto3 import client
 
prefix=("env:/A", "env:/B")
conn = client('s3')
for path in prefix:
    print(path)
    for key in conn.list_objects(Bucket="my_bucket",
                             Prefix=path)['Contents']:
                print(key)
 

Ошибка:

env:/A

Ключ1….содержимое в порядке

Ключ2….содержимое в порядке

env:/B Трассировка (последний последний вызов): Файл «/listB.py», строка 8, в для ключа в конн.list_objects(Ведро=»my_bucket», ошибка ключа: «Содержимое»

Комментарии:

1. Как все прошло? Все еще неясно, почему у вас возникла ошибка и как ее исправить?

Ответ №1:

Вероятно, ничего не было возвращено, следовательно, нет Contents . Вы должны проверить это:

 from boto3 import client
 
prefix=("env:/A", "env:/B")
conn = client('s3')

for path in prefix:

    print(path)

    result = conn.list_objects(
                Bucket="my_bucket",
                Prefix=path)

    if 'Contents' in result:
        content = result['Contents']
        # process content if there is any