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.