Boto3 S3: obtenha arquivos sem obter pastas

Usando o boto3, como recuperar todos os arquivos no meu depósito S3 sem recuperar as pastas?

Considere a seguinte estrutura de arquivos:

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

Neste exemplo, estou interessado apenas nos 4 arquivos.

EDITAR:

Uma solução manual é:

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

Nesse caso, o total seria 4.

Se eu fizesse

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

o resultado seria 7 objetos (4 arquivos e 3 pastas):

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

Eu só quero:

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

questionAnswers(3)

yourAnswerToTheQuestion