Boto3 S3: Dateien ohne Ordner

Mit boto3, wie kann ich alle Dateien abrufen, die in meinem S3-bucket, ohne das abrufen der Ordner?

Betrachten Sie die folgende Datei-Struktur:

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

In diesem Beispiel nur Im Interesse der 4 Dateien.

EDIT:

Einer manuellen Lösung ist:

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

In diesem Fall insgesamt 4.

Wenn ich nur

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

wäre das Ergebnis 7 Objekte (4 Dateien und 3 Ordner):

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

Ich will einfach NUR:

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

InformationsquelleAutor Vingtoft | 2017-03-08

Schreibe einen Kommentar