Télécharger des fichiers et des dossiers du bucket Google Storage vers un dossier local [fermé]

90

Quelle est la meilleure façon de télécharger tous les fichiers depuis Google Cloud Storage?

Dilvane Zanardine
la source

Réponses:

150

Jetez un œil à l' outil gsutil . Vous pouvez utiliser la commande cp avec les options -R(récursif) et -m(multithreading).

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

Et si vous voulez l'essayer avec un seau public, essayez

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

L'accélération accordée par le multithreading peut être assez importante:

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

real    0m12.534s

contre

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

real    0m3.345s
Sebastian Kreft
la source
Je suggérerais de ne pas télécharger aveuglément le seau uspto-pair - il y a un tas de documents là-dedans ...
Cebjyre
1
Une chose très importante ici, est d'installer gsutil sur votre machine locale . Vous pouvez par exemple le faire en installant le SDK Google Cloud. Cette étape, j'ai oublié et j'ai continué à utiliser gsutil sur la VM locale de mon projet comme un idiot.
Matthias
Ce service est-il gratuit ou payant? Vous aimez les opérations de classe A?
Sudhanshu Gaur
2
Si vous téléchargez un certain nombre de fichiers volumineux de votre compartiment sur un disque dur traditionnel (et non un SSD), n'utilisez pas l' -mindicateur pour le multi-threading. Cela réduira considérablement le temps de réponse du disque car il déplacera continuellement les aiguilles entre les différents fichiers. J'ai essayé d'utiliser -mau début, seulement pour que le disque devienne le goulot d'étranglement. L'omission de l' -mindicateur maintiendra l'écriture du disque dur dans le même emplacement physique sur le disque.
JR
c'est à nouveau! Merci
kninjaboi
67

Pour ceux qui souhaitent éviter d'installer des outils locaux tels que gsutil, il existe un moyen de télécharger des fichiers et des dossiers à partir de Google Cloud Storage entièrement dans le navigateur:

  1. Accédez à: https://console.cloud.google.com/storage/browser/BUCKET_NAME
  2. Recherchez le dossier / fichier que vous souhaitez télécharger.
  3. En haut à droite de la page, appuyez sur l'icône de code pour ouvrir Cloud Shell.
  4. Créez un dossier temporaire dans la machine virtuelle Cloud Shell: mkdir Data
  5. Copiez les données Cloud Storage dans le Datadossier temporaire :gsutil -m cp -R gs://BUCKET_NAME/FOLDER_OR_FILE_PATH ./Data
  6. Copiez les données dans un fichier zip: zip -r Data.zip Data
  7. Téléchargez le fichier zip en exécutant dl Data.zip, ou en ouvrant le menu déroulant "..." dans la barre d'outils, en appuyant sur "Télécharger le fichier", en tapant Data.zipet en appuyant sur "Télécharger".

Comme alternative aux étapes 6 et 7 (ou si vous voulez un fichier tar au lieu d'un zip):

. . 6b. Appuyez sur l'icône de l'ordinateur (ou sur le crayon) dans la barre d'outils pour ouvrir l'explorateur de l'environnement Cloud Shell dans un nouvel onglet.
. . 7b. Cliquez avec le bouton droit sur le Datadossier dans le navigateur de répertoires à gauche et appuyez sur "Télécharger". Un fichier tar sera téléchargé sur votre machine locale, que vous pourrez ensuite extraire à l'aide de 7-Zip ou autre.

Venryx
la source
7
Celui-ci a fonctionné comme un charme pour moi, SANS aucun forfait payant!
nipunasudha le
Y a-t-il une limite de taille pour le dossier temporaire? De mon côté, il arrête de copier après 54%. J'essaie de déplacer 8,4 Go d'images pour les télécharger.
difficilesQuestions le
1
@toughQuestions Je ne sais pas; Je n'ai jamais essayé de télécharger autant de contenu. En supposant que c'est le cas (d'après vos commentaires), je suggérerais simplement d'installer le programme gsutil sur votre ordinateur local et de l'exécuter à partir de là: stackoverflow.com/q/39137053
Venryx
Je vais l'essayer, merci :-)
difficilesQuestions
1
Il y a une limite de 5 Go, ce n'est donc utile que pour les petites choses. Cool Solution cependant.
user32149
16

Si vous gsutillancez une exception ( CommandException: Wrong number of arguments for "cp" command.), essayez ce qui suit:

gsutil -m cp -R gs://BUCKETNAME ./LOCALFOLDERNAME
Lausbert
la source
Ce service est-il gratuit ou payant? Vous aimez les opérations de classe A?
Sudhanshu Gaur
2

Dans mon cas, ce qui a fonctionné était de naviguer vers le seau dans l'interface graphique du navigateur et de cliquer avec le bouton gauche sur le fichier et sur "Enregistrer le fichier".
C'est évidemment terrible pour plusieurs fichiers, mais vous pouvez bien sûr les compresser dans un seul fichier (en utilisant la console google cloud).

voir ce fil.

De plus, si vous n'avez pas de compartiment, vous pouvez en créer un , puis le télécharger à l'aide de gcloud console, par exemplegsutil cp file.tgz gs://<bucket>

Matthias
la source
2
Je viens de comprendre pourquoi la réponse de Sebastian ne fonctionnait pas pour moi ... pour une raison quelconque, j'étais totalement aveugle au fait que j'avais besoin d' installer gsutil sur ma machine locale . Je l'ai utilisé dans la console gcloud en téléchargement dans le navigateur sur ma VM de projet.
Matthias
Le shell gcloud intégré au navigateur prend en charge le téléchargement de ses fichiers vm sur votre machine locale, vous n'avez donc pas besoin de l'installer gsutilsur votre machine locale: stackoverflow.com/a/59567734/2441655
Venryx le
@Dilvane en quelque sorte l'option -m ne fonctionne pas pour moi ... mais -r fait comme ci-dessous ... bharathkumarraju @ R77-NB193 raju% gsutil cp -r gs: // testbucket. Copie de gs: //testbucket/asset-manifest.json ...
BharathKumarRaju Dasararaju
2

Voici ce qui a fonctionné pour moi:

Étape 1: installez gsutil sur votre machine locale: https://cloud.google.com/storage/docs/gsutil_install?hl=fr

Étape 2: copiez les fichiers du bucket sur votre ordinateur local en exécutant la commande:gsutil cp [-r if repository] gs://[BUCKET_NAME]/[OBJECT_NAME] [OBJECT_DESTINATION_IN_LOCAL]

HLeb
la source