Laden Sie Dateien und Ordner aus dem Google Storage-Bucket in einen lokalen Ordner herunter [geschlossen]


Antworten:


149

Schauen Sie sich das gsutil-Tool an . Sie können den Befehl cp mit den Optionen -R(rekursiv) und -m(Multithreading) verwenden.

gsutil -m cp -R gs://<bucket_name> .

Und wenn Sie es mit einem öffentlichen Eimer versuchen möchten, versuchen Sie es

gsutil -m cp -R gs://uspto-pair .

Die durch Multithreading gewährte Beschleunigung kann erheblich sein:

$ time gsutil cp -R gs://uspto-pair/docs/2010-08-28 .
...

real    0m12.534s

vs.

$ time gsutil -m cp -R gs://uspto-pair/docs/2010-08-28 .
...

real    0m3.345s

Ich würde vorschlagen, den Uspto-Pair-Bucket nicht blind herunterzuladen - da sind ein paar Dokumente
drin

1
Eine sehr wichtige Sache hier ist, gsutil auf Ihrem lokalen Computer zu installieren . Sie können dies beispielsweise tun, indem Sie das Google Cloud SDK installieren. Diesen Schritt habe ich vergessen und gsutil auf der lokalen VM meines Projekts wie ein Idiot verwendet.
Matthias

Ist dieser Service kostenlos oder kostenpflichtig? Wie Operationen der Klasse A?
Sudhanshu Gaur

2
Wenn Sie eine Reihe großer Dateien aus Ihrem Bucket auf eine herkömmliche Festplatte (nicht SSD) herunterladen, verwenden Sie das -mFlag nicht für Multithreading. Dadurch wird die Antwortzeit der Festplatte erheblich verkürzt, da die Nadeln kontinuierlich zwischen den verschiedenen Dateien verschoben werden. Ich habe zuerst versucht, es -mzu verwenden, nur um die Festplatte zum Engpass zu machen. Wenn Sie das -mFlag weglassen, bleibt die Festplatte am selben physischen Speicherort auf der Festplatte.
JR

das ist toll! Danke
kninjaboi

65

Für diejenigen, die die Installation lokaler Tools wie vermeiden möchten gsutil, gibt es eine Möglichkeit, Dateien und Ordner vollständig im Browser aus Google Cloud Storage herunterzuladen :

  1. Navigieren Sie zu: https://console.cloud.google.com/storage/browser/BUCKET_NAME
  2. Suchen Sie den Ordner / die Datei, die Sie herunterladen möchten.
  3. Drücken Sie oben rechts auf der Seite auf das Codesymbol, um die Cloud-Shell zu öffnen.
  4. Erstellen Sie einen temporären Ordner in der virtuellen Cloud Shell-Maschine: mkdir Data
  5. Kopieren Sie die Cloud-Speicherdaten in den temporären DataOrdner:gsutil -m cp -R gs://BUCKET_NAME/FOLDER_OR_FILE_PATH ./Data
  6. Kopieren Sie die Daten in eine Zip-Datei: zip -r Data.zip Data
  7. Laden Sie die Zip-Datei herunter dl Data.zip, indem Sie Folgendes ausführen: Öffnen Sie die Dropdown-Liste "..." in der Symbolleiste, drücken Sie auf "Datei herunterladen" Data.zip, geben Sie ein und drücken Sie auf "Herunterladen".

Alternativ zu den Schritten 6 und 7 (oder wenn Sie eine TAR-Datei anstelle einer Zip-Datei möchten):

. . 6b. Drücken Sie auf das Computersymbol (oder den Bleistift) in der Symbolleiste, um den Cloud Shell Environment Explorer in einer neuen Registerkarte zu öffnen.
. . 7b. Klicken Sie mit der rechten Maustaste auf den DataOrdner im Verzeichnisbrowser links und klicken Sie auf "Download". Eine TAR-Datei wird auf Ihren lokalen Computer heruntergeladen, die Sie dann mit 7-Zip oder ähnlichem extrahieren können .


7
Dieser hat wie ein Zauber für mich gewirkt, OHNE ein bezahltes Paket!
Nipunasudha

Gibt es eine Größenbeschränkung für den temporären Ordner? Auf meiner Seite hört es nach 54% auf zu kopieren. Ich versuche, 8,4 GB Bilder zu verschieben, um sie herunterzuladen.
hardQuestions

1
@toughQuestions Ich weiß es nicht; Ich habe noch nie versucht, so viele Inhalte herunterzuladen. Unter der Annahme, dass dies der Fall ist (aufgrund Ihres Feedbacks), würde ich vorschlagen, das Programm gsutil einfach auf Ihrem lokalen Computer zu installieren und von dort aus auszuführen
Venryx

Ich werde es ausprobieren, danke :-)
hardQuestions

Es gibt ein Limit von 5 GB, daher ist es nur für kleinere Dinge nützlich. Coole Lösung.
user32149

16

Im Fall gsutilwirft eine Ausnahme ( CommandException: Wrong number of arguments for "cp" command.) versuchen , die folgenden:

gsutil -m cp -R gs://BUCKETNAME ./LOCALFOLDERNAME

Ist dieser Service kostenlos oder kostenpflichtig? Wie Operationen der Klasse A?
Sudhanshu Gaur

2

In meinem Fall hat es funktioniert, zum Bucket in der Browser-Benutzeroberfläche zu navigieren und mit der linken Maustaste auf die Datei und "Datei speichern" zu klicken.
Dies ist natürlich für mehrere Dateien schrecklich, aber Sie können sie natürlich zu einer Datei komprimieren (mithilfe der Google Cloud-Konsole).

siehe diesen Thread.

Wenn Sie keinen Bucket haben, können Sie auch einen erstellen und ihn dann über die gcloud-Konsole hochladen, zgsutil cp file.tgz gs://<bucket>


2
Ich habe gerade festgestellt, warum Sebastians Antwort bei mir nicht funktioniert hat. Aus irgendeinem Grund war ich völlig blind für die Tatsache, dass ich das gsutil auf meinem lokalen Computer installieren musste . Habe es in der gcloud-Konsole im Browser verwendet und dort auf meine Projekt-VM heruntergeladen.
Matthias

Die gcloud-Shell im Browser unterstützt das Herunterladen ihrer VM-Dateien auf Ihren lokalen Computer, sodass Sie sie nicht gsutilauf Ihrem lokalen Computer installieren müssen : stackoverflow.com/a/59567734/2441655
Venryx

@ Dilvane irgendwie -m Option funktioniert nicht für mich ... aber -r macht wie unten ... bharathkumarraju @ R77-NB193 raju% gsutil cp -r gs: // testbucket. Kopieren von gs: //testbucket/asset-manifest.json ...
BharathKumarRaju Dasararaju

2

Folgendes hat bei mir funktioniert:

Schritt 1: Installieren Sie gsutil auf Ihrem lokalen Computer: https://cloud.google.com/storage/docs/gsutil_install?hl=fr

Schritt 2: Kopieren Sie Dateien aus dem Bucket auf Ihren lokalen Computer, auf dem der Befehl ausgeführt wird:gsutil cp [-r if repository] gs://[BUCKET_NAME]/[OBJECT_NAME] [OBJECT_DESTINATION_IN_LOCAL]

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.