Один из способов отфильтровать папки - проверить конечный символ объекта, если вы уверены, что ни один файл не заканчивается косой чертой:

ьзуя boto3, как я могу получить все файлы в моем S3-контейнере, не извлекая папки?

Рассмотрим следующую структуру файлов:

file_1.txt
folder_1/
    file_2.txt
    file_3.txt
    folder_2/
        folder_3/
            file_4.txt

В этом примере меня интересуют только 4 файла.

РЕДАКТИРОВАТЬ:

Ручное решение:

def count_files_in_folder(prefix):
    total = 0
    keys = s3_client.list_objects(Bucket=bucket_name, Prefix=prefix)
    for key in keys['Contents']:
        if key['Key'][-1:] != '/':
            total += 1
    return total

В этом случае всего будет 4.

Если бы я только сделал

count = len(s3_client.list_objects(Bucket=bucket_name, Prefix=prefix))

результат будет 7 объектов (4 файла и 3 папки):

file.txt
folder_1/
folder_1/file_2.txt
folder_1/file_3.txt
folder_1/folder_2/
folder_1/folder_2/folder_3/
folder_1/folder_2/folder_3/file_4.txt

Я просто хочу:

file.txt
folder_1/file_2.txt
folder_1/file_3.txt  
folder_1/folder_2/folder_3/file_4.txt

Ответы на вопрос(3)

Ваш ответ на вопрос