1131 Stimmen

Einen ganzen S3-Bucket herunterladen?

Mir ist aufgefallen, dass es keine Möglichkeit zu geben scheint, eine ganze s3 Bucket über die AWS Management Console.

Gibt es eine einfache Möglichkeit, alles in einen meiner Eimer zu packen? Ich habe daran gedacht, den Root-Ordner öffentlich zu machen, mit wget um alles zu erfassen und es dann wieder privat zu machen, aber ich weiß nicht, ob es einen einfacheren Weg gibt.

1988voto

Layke Punkte 48417

AWS-CLI

Siehe die " AWS CLI-Befehlsreferenz " für weitere Informationen.

AWS hat vor kurzem seine Befehlszeilen-Tools veröffentlicht, die ähnlich wie boto funktionieren und mit dem folgenden Befehl installiert werden können

sudo easy_install awscli

oder

sudo pip install awscli

Nach der Installation können Sie das Programm einfach ausführen:

aws s3 sync s3://<source_bucket> <local_destination>

Zum Beispiel:

aws s3 sync s3://mybucket .

lädt alle Objekte in mybucket in das aktuelle Verzeichnis.

Und wird ausgegeben:

download: s3://mybucket/test.txt to test.txt
download: s3://mybucket/test2.txt to test2.txt

Dadurch werden alle Ihre Dateien mit einer Einweg-Synchronisierung heruntergeladen. Es wird no alle vorhandenen Dateien in Ihrem aktuellen Verzeichnis löschen, es sei denn, Sie geben --delete und es wird keine Dateien auf S3 ändern oder löschen.

Sie können auch eine Synchronisierung von S3-Bucket zu S3-Bucket oder von lokal zu S3-Bucket durchführen.

Sehen Sie sich die Dokumentation und andere Beispiele .

Während das obige Beispiel das Herunterladen eines kompletten Buckets zeigt, können Sie auch einen Ordner rekursiv herunterladen, indem Sie

aws s3 cp s3://BUCKETNAME/PATH/TO/FOLDER LocalFolderName --recursive

Dadurch wird die CLI angewiesen, alle Dateien und Ordnerschlüssel rekursiv innerhalb des PATH/TO/FOLDER Verzeichnis innerhalb der BUCKETNAME Eimer.

198voto

Phil M. Punkte 2262

Sie können verwenden s3cmd um Ihren Eimer herunterzuladen:

s3cmd --configure
s3cmd sync s3://bucketnamehere/folder /destination/folder

Es gibt ein weiteres Tool, das Sie verwenden können rclone . Dies ist ein Codebeispiel aus der Rclone-Dokumentation:

rclone sync /home/local/directory remote:bucket

127voto

wedocando Punkte 1161

Ich habe einige verschiedene Methoden verwendet, um Amazon S3-Daten auf einen lokalen Rechner zu kopieren, darunter s3cmd und die bei weitem einfachste ist Cyberduck .

Sie müssen lediglich Ihre Amazon-Anmeldedaten eingeben und die einfache Schnittstelle zum Herunterladen, Hochladen und Synchronisieren Ihrer Buckets, Ordner oder Dateien verwenden.

Screenshot

99voto

Darshan Lila Punkte 5602

Dafür gibt es viele Möglichkeiten, aber die beste ist die Verwendung der AWS CLI.

Hier ist ein Durchgang:

  1. Laden Sie AWS CLI herunter und installieren Sie es auf Ihrem Computer:

  2. Konfigurieren Sie AWS CLI:

    enter image description here

    Stellen Sie sicher, dass Sie eine gültige Zugang y geheim Schlüssel, die Sie bei der Erstellung des Kontos erhalten haben.

  3. Synchronisieren Sie den S3-Bucket mit:

    aws s3 sync s3://yourbucket /local/path

    Ersetzen Sie im obigen Befehl die folgenden Felder:

    • yourbucket >> Ihren S3-Bucket, den Sie herunterladen möchten.
    • /local/path >> Pfad in Ihrem lokalen System, wo Sie alle Dateien herunterladen möchten.

80voto

Sarat Chandra Punkte 4840

Zum Herunterladen mit AWS S3 CLI:

aws s3 cp s3://WholeBucket LocalFolder --recursive
aws s3 cp s3://Bucket/Folder LocalFolder --recursive

Zum Herunterladen von Code verwenden Sie das AWS SDK.

Zum Herunterladen über die grafische Benutzeroberfläche verwenden Sie Cyberduck.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X