Ordner von aws s3, cp oder sync herunterladen?

101

Wenn ich den gesamten Inhalt eines Verzeichnisses in S3 auf meinen lokalen PC herunterladen möchte, welchen Befehl sollte ich cp oder sync verwenden?

Jede Hilfe wäre sehr dankbar.

Beispielsweise,

Wenn ich den gesamten Inhalt dieses Ordners auf meinen Desktop herunterladen möchte, sieht er dann so aus?

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

Antworten:

176

Für die Verwendung aws s3 cpüber die AWS-Befehlszeilenschnittstelle (CLI) muss der --recursiveParameter mehrere Dateien kopieren.

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

Der aws s3 syncBefehl kopiert standardmäßig ein ganzes Verzeichnis. Es werden nur neue / geänderte Dateien kopiert.

aws s3 sync s3://mybucket/dir localdir

Experimentieren Sie einfach, um das gewünschte Ergebnis zu erzielen.

Dokumentation:

John Rotenstein
quelle
3
Ich habe ein paar Minuten gebraucht, um herauszufinden, wo ich aws cli bekommen kann. Hier ist es: aws.amazon.com/cli
Bjørn Stenfeldt
@dnafication Bitte erstellen Sie eine neue Frage, anstatt eine Frage in einem Kommentar zu einer alten Frage zu stellen.
John Rotenstein
aws s3 cp s3://myBucket/dir localdir --recursive. Das funktioniert wie ein Zauber. Wenn das --recursive Flag übersprungen wird, gibt es einen nicht hilfreichen Fehler:fatal error: An error occurred (404) when calling the HeadObject operation: Key "myBucket" does not exist
Siddhartha
Aber wenn die Datei Single Zip groß in GB ist, was wäre die Empfehlung?
Kanagavelu Sugumar
@KanagaveluSugumar Bitte erstellen Sie eine neue Frage, anstatt sie über einen Kommentar zu einer alten Frage zu stellen.
John Rotenstein
3

Falls Sie ein anderes Profil verwenden müssen, insbesondere ein Cross-Account. Sie müssen das Profil in der Konfigurationsdatei hinzufügen

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

und dann, wenn Sie nur auf eine einzelne Datei zugreifen

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

myPavi
quelle
1

Wenn Sie eine einzelne Datei herunterladen möchten, können Sie den folgenden Befehl ausführen:

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

Gerade verwendete Version 2 der AWS CLI. Für die Option s3 gibt es jetzt auch die Option --dryrun, die Ihnen zeigt, was passieren wird:

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

Marc Duby
quelle