Les autres questions que j'ai pu trouver se rapportaient à une ancienne version de Boto. Je voudrais télécharger le dernier fichier d'un seau S3. Dans le documentation j'ai trouvé qu'il y a une méthode list_object_versions() qui vous obtient un IsLatest booléen. Malheureusement, j'ai seulement réussi à établir une connexion et à télécharger un fichier. Pourriez-vous s'il vous plaît me montrer comment je peux étendre mon code pour obtenir le dernier fichier du seau? MerciComment télécharger le dernier fichier d'un seau S3 en utilisant Boto3?
import boto3
conn = boto3.client('s3',
region_name="eu-west-1",
endpoint_url="customendpoint",
config=Config(signature_version="s3", s3={'addressing_style': 'path'}))
D'ici, je ne sais pas comment aller d'un seau appelé mytestbucket
le dernier fichier ajouté. Il y a plusieurs fichiers csv dans le seau mais bien sûr avec un nom différent.
Mise à jour:
import boto3
from botocore.client import Config
s3 = boto3.resource('s3', region_name="eu-west-1", endpoint_url="custom endpoint", aws_access_key_id = '1234', aws_secret_access_key = '1234', config=Config(signature_version="s3", s3={'addressing_style': 'path'}))
my_bucket = s3.Bucket('mytestbucket22')
unsorted = []
for file in my_bucket.objects.filter():
unsorted.append(file)
files = [obj.key for obj in sorted(unsorted, key=get_last_modified, reverse=True)][0:9]
Cela me donne l'erreur suivante:
NameError: name 'get_last_modified' is not defined
Vérifiez ma réponse. Il devrait donner le dernier fichier ajouté. – helloV