Mir ist aufgefallen, dass es anscheinend keine Option gibt, einen gesamten S3-Bucket von der AWS Management Console herunterzuladen.
Gibt es eine einfache Möglichkeit, alles in einen meiner Eimer zu packen? Ich habe darüber nachgedacht, den Stammordner öffentlich wget
zu machen, alles abzurufen und dann wieder privat zu machen, aber ich weiß nicht, ob es einen einfacheren Weg gibt.
amazon-s3
amazon-web-services
Rugbert
quelle
quelle
aws s3 sync
ist das Beste. Aber niemand wies auf eine mächtige Option hin :dryrun
. Mit dieser Option können Sie sehen, was bei Verwendung von / nach s3 heruntergeladen / hochgeladen wirdsync
. Dies ist sehr hilfreich, wenn Sie Inhalte weder in Ihrem lokalen noch in einem S3-Bucket überschreiben möchten. So wird es verwendet:aws s3 sync <source> <destination> --dryrun
Ich habe es die ganze Zeit verwendet, bevor ich neue Inhalte in einen Bucket verschoben habe, um keine unerwünschten Änderungen hochzuladen.Antworten:
AWS CLI
Weitere Informationen finden Sie in der " AWS CLI-Befehlsreferenz ".
AWS hat kürzlich seine Befehlszeilentools veröffentlicht, die ähnlich wie Boto funktionieren und mit installiert werden können
oder
Nach der Installation können Sie einfach Folgendes ausführen:
Zum Beispiel:
lädt alle Objekte in
mybucket
das aktuelle Verzeichnis herunter .Und wird ausgegeben:
Dadurch werden alle Ihre Dateien über eine Einweg-Synchronisierung heruntergeladen. Es wird nicht alle vorhandenen Dateien im aktuellen Verzeichnis löschen , wenn Sie angeben , und es wird keine Dateien auf S3 ändern oder löschen.
--delete
Sie können auch die Synchronisierung von S3-Bucket zu S3-Bucket oder lokal zu S3-Bucket durchführen.
Lesen Sie die Dokumentation und andere Beispiele .
Während das obige Beispiel zeigt, wie ein vollständiger Bucket heruntergeladen wird, können Sie einen Ordner auch rekursiv herunterladen, indem Sie ausführen
Dadurch wird die CLI angewiesen, alle Dateien und Ordnerschlüssel rekursiv innerhalb des
PATH/TO/FOLDER
Verzeichnisses imBUCKETNAME
Bucket herunterzuladen .quelle
aws configure
und fügen Sie Ihraccess key
und hinzu,secret access key
das Sie hier finden .s3cmd
undCyberduck
, aber für michawscli
war es bei weitem der schnellste Weg, ~ 70.000 Dateien aus meinem Eimer herunterzuladen.aws s3 sync
Befehl lädt nichts hoch , löscht jedoch Dateien lokal, wenn sie in S3 nicht vorhanden sind. Siehe die Dokumentation .Sie können
s3cmd
Ihren Bucket herunterladen:Es gibt ein anderes Tool, das Sie verwenden können
rclone
. Dies ist ein Codebeispiel in der Rclone-Dokumentation:quelle
Ich habe einige verschiedene Methoden verwendet, um Amazon S3-Daten auf einen lokalen Computer zu kopieren, einschließlich
s3cmd
und bei weitem am einfachsten ist Cyberduck .Sie müssen lediglich Ihre Amazon-Anmeldeinformationen eingeben und über die einfache Oberfläche Ihre Buckets, Ordner oder Dateien herunterladen, hochladen und synchronisieren.
quelle
Sie haben viele Möglichkeiten, dies zu tun, aber die beste ist die Verwendung der AWS-CLI.
Hier ist ein Rundgang:
Laden Sie AWS CLI herunter und installieren Sie es auf Ihrem Computer:
Konfigurieren Sie die AWS CLI:
Stellen Sie sicher, dass Sie einen gültigen Zugriff und geheime Schlüssel eingeben, die Sie beim Erstellen des Kontos erhalten haben.
Synchronisieren Sie den S3-Bucket mit:
Ersetzen Sie im obigen Befehl die folgenden Felder:
yourbucket
>> Ihren S3-Bucket, den Sie herunterladen möchten./local/path
>> Pfad in Ihrem lokalen System, in den Sie alle Dateien herunterladen möchten.quelle
s3://
Präfix im Bucket-Namen haben !!! Mitaws s3 ls
brauchen Sie diesess3://
Präfix nicht, aber Sie brauchen einencp
Befehl.So laden Sie mit AWS S3 CLI herunter:
Verwenden Sie zum Herunterladen mit Code das AWS SDK.
Verwenden Sie zum Herunterladen über die GUI Cyberduck.
quelle
aws s3 cp s3://my-bucket-name ./local-folder --recursive --include "*" --exclude "excludeFolder/*" --exclude "includeFolder/excludeFile.txt"
Für Windows ist der S3-Browser der einfachste Weg, den ich gefunden habe. Es ist eine ausgezeichnete Software und für den nichtkommerziellen Gebrauch kostenlos.
quelle
Wenn Sie Visual Studio verwenden, laden Sie " AWS Toolkit for Visual Studio " herunter .
Wechseln Sie nach der Installation zu Visual Studio - AWS Explorer - S3 - Ihr Bucket - Doppelklicken Sie
Im Fenster können Sie alle Dateien auswählen. Klicken Sie mit der rechten Maustaste und laden Sie die Dateien herunter.
quelle
Die Antwort von @Layke ist gut, aber wenn Sie eine Menge Daten haben und nicht ewig warten möchten, sollten Sie " AWS CLI S3-Konfiguration " lesen .
Die folgenden Befehle weisen die AWS-CLI an, 1.000 Threads zum Ausführen von Jobs (jeweils eine kleine Datei oder ein Teil einer mehrteiligen Kopie) zu verwenden und 100.000 Jobs vorauszusehen:
Nachdem Sie diese ausgeführt haben, können Sie den einfachen
sync
Befehl verwenden:oder
Auf einem System mit CPU 4-Kernen und 16 GB RAM stieg die Synchronisierungs- / Kopiergeschwindigkeit in Fällen wie meinem (3-50 GB-Dateien) von etwa 9,5 MB / s auf 700 + MiB / s, was einer Geschwindigkeitssteigerung von 70x gegenüber der Standardkonfiguration entspricht.
quelle
Verwenden Sie diesen Befehl mit der AWS-CLI :
quelle
Eine weitere Option, die einigen OS X-Benutzern helfen könnte, ist Senden.
Es ist ein FTP-Programm, mit dem Sie auch eine Verbindung zu Ihren S3-Dateien herstellen können. Es besteht die Möglichkeit, einen beliebigen FTP- oder S3-Speicher als Ordner im Finder bereitzustellen, dies ist jedoch nur für eine begrenzte Zeit möglich.
quelle
Ich habe ein bisschen für S3 entwickelt und keine einfache Möglichkeit gefunden, einen ganzen Bucket herunterzuladen.
Wenn Sie in Java codieren möchten, können Sie mit jets3t lib einfach eine Liste von Buckets erstellen und diese Liste durchlaufen, um sie herunterzuladen.
Rufen Sie zunächst einen öffentlich-privaten Schlüsselsatz vom AWS-Verwaltungskonsul ab, damit Sie ein S3service-Objekt erstellen können:
Holen Sie sich dann ein Array Ihrer Buckets-Objekte:
Zum Schluss iterieren Sie über dieses Array, um die Objekte einzeln herunterzuladen mit:
Ich habe den Verbindungscode in einen threadsicheren Singleton eingefügt. Die erforderliche Try / Catch-Syntax wurde aus offensichtlichen Gründen weggelassen.
Wenn Sie lieber in Python codieren möchten, können Sie stattdessen Boto verwenden.
Nachdem Sie sich in BucketExplorer umgesehen haben, kann " Herunterladen des gesamten Buckets" das tun, was Sie wollen.
quelle
Die AWS SDK-API bietet nur die beste Option zum Hochladen des gesamten Ordners und Repos auf s3 und zum lokalen Herunterladen des gesamten Buckets von s3.
Zum Hochladen des gesamten Ordners auf s3
zum Download des gesamten s3-Buckets lokal
Sie können auch einen Pfad wie BucketName / Path für einen bestimmten Ordner in s3 zum Herunterladen zuweisen
quelle
Sie können dies mit https://github.com/minio/mc tun :
mc unterstützt auch Sitzungen, wiederaufnehmbare Downloads, Uploads und vieles mehr.
mc
unterstützt Linux-, OS X- und Windows-Betriebssysteme. Geschrieben in Golang und veröffentlicht unter Apache Version 2.0.quelle
Wenn Sie Firefox mit S3Fox verwenden, können Sie damit alle Dateien auswählen (Shift-Select zuerst und zuletzt) und mit der rechten Maustaste klicken und alle herunterladen ... Ich habe es mit mehr als 500 Dateien ohne Problem gemacht
quelle
Unter Windows ist Cloudberry Explorer für S3 mein bevorzugtes GUI-Tool. Http://www.cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx . Hat einen ziemlich ausgefeilten Datei-Explorer, eine FTP-ähnliche Oberfläche.
quelle
Wenn Sie dort nur Dateien haben (keine Unterverzeichnisse), besteht eine schnelle Lösung darin, alle Dateien (
click
im ersten,Shift+click
im letzten) auszuwählen und aufEnter
oder zuright click
klickenOpen
. Bei den meisten Datendateien werden diese direkt auf Ihren Computer heruntergeladen.quelle
Um eine weitere GUI-Option hinzuzufügen, verwenden wir die S3-Funktionalität von WinSCP . Die Verbindung ist sehr einfach und erfordert nur Ihren Zugriffsschlüssel und Ihren geheimen Schlüssel in der Benutzeroberfläche. Sie können dann alle gewünschten Dateien aus allen verfügbaren Buckets durchsuchen und herunterladen, einschließlich rekursiver Downloads verschachtelter Ordner.
Da es eine Herausforderung sein kann, neue Software durch Sicherheit zu löschen, und WinSCP weit verbreitet ist, kann es sehr vorteilhaft sein, sie nur zu verwenden, anstatt zu versuchen, ein spezialisierteres Dienstprogramm zu installieren.
quelle
Windows-Benutzer müssen S3EXPLORER über diesen Link herunterladen, der auch Installationsanweisungen enthält: - http://s3browser.com/download.aspx
Geben Sie dann AWS-Anmeldeinformationen wie Secretkey, Accesskey und Region für den s3explorer ein. Dieser Link enthält Konfigurationsanweisungen für s3explorer: Kopieren Einfügen Link in Browser: s3browser.com/s3browser-first-run.aspx
Jetzt sind alle s3-Buckets im linken Bereich von s3explorer sichtbar.
Wählen Sie einfach den Bucket aus und klicken Sie oben links auf das Menü Buckets. Wählen Sie dann im Menü die Option Alle Dateien herunterladen in. Unten ist der Screenshot für das gleiche:
Eimerauswahlbildschirm
Durchsuchen Sie dann einen Ordner, um den Bucket an einer bestimmten Stelle herunterzuladen
Klicken Sie auf OK und Ihr Download beginnt.
quelle
aws sync ist die perfekte Lösung. Es gibt keine Zweiwege. Es ist eine Einbahnstraße von der Quelle zum Ziel. Wenn Sie viele Elemente im Bucket haben, ist es eine gute Idee, zuerst einen s3-Endpunkt zu erstellen, damit der Download schneller (da der Download nicht über das Internet, sondern über das Intranet erfolgt) und ohne Gebühren erfolgt
quelle
Hier sind einige Dinge, mit denen Sie alle Eimer herunterladen, auflisten und deren Inhalt auflisten können.
/ ---------------------------- Erweiterungsmethoden ------------------- ------------------ /
}}
quelle
Sie können es einfach mit dem Befehl s3cmd erhalten :
quelle
Wie Neel Bhaat in diesem Blog erklärt hat , gibt es viele verschiedene Tools, die für diesen Zweck verwendet werden können. Einige werden von AWS bereitgestellt, wobei die meisten Tools von Drittanbietern sind. Für alle diese Tools müssen Sie Ihren AWS-Kontoschlüssel und Ihr Geheimnis im Tool selbst speichern. Seien Sie sehr vorsichtig, wenn Sie Tools von Drittanbietern verwenden, da die Anmeldeinformationen, die Sie speichern, Sie und Ihren gesamten Wert kosten und Sie umbringen können.
Daher empfehle ich immer, die AWS CLI für diesen Zweck zu verwenden. Sie können dies einfach über diesen Link installieren . Führen Sie als Nächstes den folgenden Befehl aus und speichern Sie Ihre geheimen Schlüsselwerte in AWS CLI.
Verwenden Sie den folgenden Befehl, um Ihren AWS S3-Bucket mit Ihrem lokalen Computer zu synchronisieren. (Auf dem lokalen Computer sollte AWS CLI installiert sein.)
Beispiele:
1) Für AWS S3 zum lokalen Speicher
2) Vom lokalen Speicher zum AWS S3
3) Vom AWS s3-Bucket zu einem anderen Bucket
quelle
Wenn Sie nur den Bucket von AWS herunterladen möchten, installieren Sie zuerst die AWS-CLI auf Ihrem Computer. Wechseln Sie im Terminal in das Verzeichnis, in das Sie die Dateien herunterladen möchten, und führen Sie diesen Befehl aus.
Wenn Sie auch das lokale und das s3-Verzeichnis synchronisieren möchten (falls Sie einige Dateien im lokalen Ordner hinzugefügt haben), führen Sie den folgenden Befehl aus:
quelle
AWS CLI ist die beste Option, um einen gesamten S3-Bucket lokal herunterzuladen.
Installieren Sie AWS CLI.
Konfigurieren Sie die AWS-CLI für die Verwendung der Standardsicherheitsanmeldeinformationen und der Standard-AWS-Region.
Verwenden Sie den Befehl, um den gesamten S3-Bucket herunterzuladen
aws s3 sync s3: // yourbucketname localpath
Verweis auf die Verwendung von AWS cli für verschiedene AWS-Services: https://docs.aws.amazon.com/cli/latest/reference/
quelle
Mit diesem AWS cli-Befehl können Sie den gesamten S3-Bucket-Inhalt in den lokalen Ordner herunterladen
Wenn Sie einen solchen Fehler sehen
--no-verify-ssl (Boolescher Wert)
Standardmäßig verwendet die AWS CLI SSL bei der Kommunikation mit AWS-Diensten. Für jede SSL-Verbindung überprüft die AWS CLI die SSL-Zertifikate. Diese Option überschreibt das Standardverhalten beim Überprüfen von SSL-Zertifikaten. Referenz
Verwenden Sie dieses Tag mit dem Befehl --no-verify-ssl
quelle
s3 sync
wird oben bereits mehrfach behandelt. + Es--no-verify-ssl
ist ein Verbrechen, eine Verwendung von ohne Erklärung der Sicherheitsfolgen vorzuschlagen.Wenn der Bucket ziemlich groß ist, wird ein Befehl aufgerufen,
s4cmd
der parallele Verbindungen herstellt und die Downloadzeit verbessert:Um es auf Debian wie zu installieren
Wenn Sie pip haben:
Die
~/.s3cfg
Datei wird gelesen , falls vorhanden (falls nicht installierts3cmd
und ausgeführts3cmd --configure
), oder Sie können sie--access-key=ACCESS_KEY --secret-key=SECRET_KEY
im Befehl angeben .Das Cli ist ähnlich wie
s3cmd
. In Ihrem Fallsync
wird a empfohlen, da Sie den Download abbrechen und erneut starten können, ohne die Dateien erneut herunterladen zu müssen.Seien Sie vorsichtig, wenn Sie viele Daten herunterladen (> 1 TB). Dies kann sich auf Ihre Rechnung auswirken. Berechnen Sie zuerst, welche Kosten anfallen
quelle
Wie @layke sagte, ist es die beste Vorgehensweise, die Datei von der S3-Cli herunterzuladen. Es ist sicher und sicher. In einigen Fällen müssen die Benutzer jedoch wget verwenden, um die Datei herunterzuladen. Hier ist die Lösung
Mit diesem Presign erhalten Sie eine temporäre öffentliche URL, mit der Sie Inhalte von S3 mithilfe von presign_url herunterladen können, in Ihrem Fall mit wget oder einem anderen Download-Client.
quelle
Versuchen Sie diesen Befehl:
aws s3 sync yourBucketnameDirectory yourLocalDirectory
Wenn beispielsweise Ihr Bucket-Name
myBucket
und das lokale Verzeichnis lautetc:\local
, gilt Folgendes:aws s3 sync s3://myBucket c:\local
Weitere Informationen zu awscli finden Sie in dieser aws cli-Installation
quelle