Ich möchte alle Dateinamen kennen, die unter einem bestimmten Ordner in einem bestimmten Bucket von AWS S3 gespeichert sind. Zu diesem Zeitpunkt befinden sich mehr als 1000 Dateien unter einem bestimmten Ordner in einem bestimmten Bucket.
wichtiger Punkt Da list_object nur bis zu 1000 Elemente abrufen kann, muss ein Prozess zum Abrufen von Dateiinformationen entwickelt werden.
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/paginators.html Wie in beschrieben.
sample.py
import boto3
MY_REGION = 'Regionsname';
MY_BUCKET = 'Eimername';
#Verzeichnis unter dem Eimer
TARGET_PATH = 'tmp/YYYY/MM/DD/';
client = boto3.client('s3', region_name=MY_REGION)
paginator = client.get_paginator('list_objects')
#Filtereinstellungen
operation_parameters = {
'Bucket': MY_BUCKET,
'Prefix': TARGET_PATH
}
page_iterator = paginator.paginate(**operation_parameters)
#S3-Objektschlüssel ausgeben
for page in page_iterator:
for content in page['Contents']:
print(content['Key'])
Ausgabebeispiel des obigen Codes
tmp/YYYY/MM/DD/0001.txt
tmp/YYYY/MM/DD/0002.txt
tmp/YYYY/MM/DD/0003.txt
....
tmp/YYYY/MM/DD/1000.txt
tmp/YYYY/MM/DD/1001.txt
tmp/YYYY/MM/DD/1002.txt
memo ・ Ich persönlich erinnere mich, dass es schwierig war, Informationen zu mehr als 1000 Dateien zu erhalten, aber kürzlich war ich ein wenig beeindruckt, dass dies einfach war, und schrieb diesen Artikel. -Auch ich wusste nicht, dass Sie Filterung wie unter einem bestimmten Ordner angeben können, also Memo Memo.
Recommended Posts