Je souhaite connaître tous les noms de fichiers enregistrés dans un certain dossier dans un certain compartiment d'AWS S3. À l'heure actuelle, il y a plus de 1000 fichiers sous un certain dossier dans un certain compartiment.
point important Étant donné que list_object ne peut obtenir que 1000 éléments, il est nécessaire de concevoir un processus pour obtenir des informations sur les fichiers.
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/paginators.html Comme décrit dans.
sample.py
import boto3
MY_REGION = 'Nom de la région';
MY_BUCKET = 'Nom du godet';
#Répertoire sous le seau
TARGET_PATH = 'tmp/YYYY/MM/DD/';
client = boto3.client('s3', region_name=MY_REGION)
paginator = client.get_paginator('list_objects')
#Paramètres de filtrage
operation_parameters = {
'Bucket': MY_BUCKET,
'Prefix': TARGET_PATH
}
page_iterator = paginator.paginate(**operation_parameters)
#Clé d'objet S3 de sortie
for page in page_iterator:
for content in page['Contents']:
print(content['Key'])
Exemple de sortie du code ci-dessus
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 ・ Je me souviens personnellement qu'il était difficile d'obtenir des informations sur plus de 1000 fichiers, mais récemment, j'ai été un peu impressionné par le fait que c'était facile à faire, j'ai donc écrit cet article. -Aussi, je ne savais pas que vous pouviez spécifier le filtrage comme sous un dossier spécifique, donc mémo mémo.
Recommended Posts