150 votes

Comment télécharger un fichier vers un répertoire dans un seau S3 à l'aide de boto ?

Je veux copier un fichier dans un seau s3 en utilisant python.

Ex : J'ai un nom de seau = test. Et dans le seau, j'ai 2 dossiers nommés "dump" et "input". Maintenant je veux copier un fichier du répertoire local au dossier "dump" de S3 en utilisant python... Quelqu'un peut-il m'aider ?

0voto

hume Points 809

Beaucoup des réponses existantes ici sont assez complexes. Une approche simple consiste à utiliser cloudpathlib qui englobe boto3 .

Tout d'abord, assurez-vous d'être authentifié correctement avec une ~/.aws/credentials ou des variables d'environnement définies. Voir d'autres options dans la documentation de cloudpathlib .

C'est ainsi que l'on télécharge un fichier :

from pathlib import Path
from cloudpathlib import CloudPath

# write a local file that we will upload:
Path("test_file.txt").write_text("hello")
#> 5

# upload that file to S3
CloudPath("s3://drivendata-public-assets/testsfile.txt").upload_from("test_file.txt")
#> S3Path('s3://mybucket/testsfile.txt')

# read it back from s3
CloudPath("s3://mybucket/testsfile.txt").read_text()
#> 'hello'

Notez que vous pourriez écrire directement dans le chemin du nuage en utilisant la méthode normale write_text , write_bytes ou open également.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X