Télécharger des dossiers depuis AWS S3, CP ou Sync?

108

Si je veux télécharger tout le contenu d'un répertoire sur S3 sur mon PC local, quelle commande dois-je utiliser cp ou sync?

Toute aide serait très appréciée.

Par exemple,

si je veux télécharger tout le contenu de "ce dossier" sur mon bureau, cela ressemblerait-il à ceci?

 aws s3 sync s3://"myBucket"/"this folder" C:\\Users\Desktop
BFlint
la source

Réponses:

185

L'utilisation à aws s3 cppartir de l' interface de ligne de commande AWS (CLI) nécessitera le --recursiveparamètre pour copier plusieurs fichiers.

aws s3 cp s3://myBucket/dir localdir --recursive

La aws s3 synccommande copiera, par défaut, un répertoire entier. Il ne copiera que les fichiers nouveaux / modifiés.

aws s3 sync s3://mybucket/dir localdir

Expérimentez simplement pour obtenir le résultat souhaité.

Documentation:

John Rotenstein
la source
3
Il m'a fallu quelques minutes pour savoir où trouver aws cli. Le voici: aws.amazon.com/cli
Bjørn Stenfeldt
@dnafication Veuillez créer une nouvelle question plutôt que de poser une question dans un commentaire sur une ancienne question.
John Rotenstein
aws s3 cp s3://myBucket/dir localdir --recursive. Cela fonctionne comme un charme. Si l'indicateur --recursive est ignoré, il génère une erreur plutôt inutile:fatal error: An error occurred (404) when calling the HeadObject operation: Key "myBucket" does not exist
Siddhartha
Mais si le fichier zip unique de grande taille en Go, quelle serait la recommandation?
Kanagavelu Sugumar
@KanagaveluSugumar Veuillez créer une nouvelle question plutôt que de la poser via un commentaire sur une ancienne question.
John Rotenstein
4

Au cas où vous auriez besoin d'utiliser un autre profil, en particulier un compte croisé. vous devez ajouter le profil dans le fichier de configuration

[profile profileName]
region = us-east-1
role_arn = arn:aws:iam::XXX:role/XXXX
source_profile = default

puis si vous n'accédez qu'à un seul fichier

aws s3 cp s3://crossAccountBucket/dir localdir --profile profileName

myPavi
la source
2

Dans le cas où vous souhaitez télécharger un seul fichier, vous pouvez essayer la commande suivante:

aws s3 cp s3://bucket/filename /path/to/dest/folder
gCoh
la source
0

Je viens d'utiliser la version 2 de l'AWS CLI. Pour l'option s3, il existe également une option --dryrun maintenant pour vous montrer ce qui va se passer:

aws s3 --dryrun cp s3://bucket/filename /path/to/dest/folder --recursive

Marc Duby
la source