télécharger un répertoire de s3 avec boto
Je suis déjà connecté à l'instance et que je veux télécharger les fichiers qui sont générés à partir de mon script python directement à S3. J'ai essayé ceci:
import boto
s3 = boto.connect_s3()
bucket = s3.get_bucket('alexandrabucket')
from boto.s3.key import Key
key = bucket.new_key('s0').set_contents_from_string('some content')
mais c'est plutôt la création d'un nouveau fichier s0 avec le contexte "même contenu" alors que je veux télécharger le répertoire de s0 à mybucket.
J'ai eu un coup d'oeil également à s3put mais je n'ai pas réussi à obtenir ce que je veux.
Peut-être que vous pourriez vouloir jeter un oeil à cette, ressemble à un un peu la même question
OriginalL'auteur user3333539 | 2014-08-19
Vous devez vous connecter pour publier un commentaire.
Il n'y a rien dans le
boto
bibliothèque elle-même, qui vous permettent de télécharger l'intégralité d'un répertoire. Vous pouvez écrire votre propre code pour parcourir le répertoire à l'aide deos.walk
ou similaires et de télécharger chaque fichier à l'aide de boto.Il y a un utilitaire de ligne de commande dans boto appelé
s3put
qui pourrait gérer cela ou vous pouvez utiliser la AWS outils CLI qui a beaucoup de fonctionnalités qui vous permettent de télécharger des répertoires entiers ou même synchroniser le compartiment S3 avec un répertoire local ou vice-versa.s3 sync
dirait qu'il fait le travail docs.aws.amazon.com/cli/latest/reference/s3/sync.htmlLe téléchargement de chaque fichier à l'aide de
os.walk
est d'autant plus faible que le téléchargement dans un lot..OriginalL'auteur garnaat
La fonction suivante peut être utilisée pour télécharger le répertoire de s3 par boto.
Fournir un chemin d'accès vers le répertoire et le nom de bucket que les entrées. Les fichiers sont placés directement dans le seau. Modifier la dernière variable de la upload_file fonction() pour les placer dans des "répertoires".
oui, c'est le boto3 client, il est instancié comme ceci: s3C = boto3.client('s3')
La meilleure solution ici gist.github.com/feelinc/d1f541af4f31d09a2ec3
OriginalL'auteur JDPTET