Pobierz pliki i foldery z zasobnika Google Storage do folderu lokalnego [zamknięte]

Odpowiedzi:

150

Przyjrzyj się narzędziu gsutil . Możesz użyć polecenia cp z opcjami -R(rekurencyjnie) i -m(wielowątkowość).

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

A jeśli chcesz spróbować z publicznym wiadrem, spróbuj

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

Przyspieszenie zapewniane przez wielowątkowość może być dość znaczące:

$ 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
Sebastian Kreft
źródło
Sugerowałbym, aby nie ślepo pobierać wiadra z parami uspto - jest tam kilka dokumentów ...
Cebjyre
1
Bardzo ważną rzeczą jest zainstalowanie gsutil na komputerze lokalnym . Możesz to zrobić na przykład, instalując Google Cloud SDK. W tym kroku zapomniałem i nadal używałem gsutil na lokalnej maszynie wirtualnej mojego projektu jak idiota.
Matthias
Czy ta usługa jest bezpłatna czy płatna? Podobnie jak operacje klasy A?
Sudhanshu Gaur
2
Jeśli pobierasz wiele dużych plików ze swojego zasobnika na tradycyjny dysk twardy (nie SSD), nie używaj -mflagi do wielowątkowości. Spowoduje to znaczne skrócenie czasu odpowiedzi dysku, ponieważ będzie stale przesuwać igły między różnymi plikami. Na początku próbowałem użyć -m, ale dysk stał się wąskim gardłem. Pominięcie -mflagi spowoduje, że dysk twardy będzie zapisywał się w tej samej fizycznej lokalizacji na dysku.
JR
to jest nowość! Dzięki
kninjaboi
66

Dla tych, którzy chcą uniknąć instalowania narzędzi lokalnych, takich jak gsutil, istnieje sposób na pobranie plików i folderów z Google Cloud Storage w całości w przeglądarce:

  1. Przejdź do: https://console.cloud.google.com/storage/browser/BUCKET_NAME
  2. Znajdź folder / plik, który chcesz pobrać.
  3. W prawym górnym rogu strony naciśnij ikonę kodu, aby otworzyć Cloud Shell.
  4. Utwórz folder tymczasowy na maszynie wirtualnej Cloud Shell: mkdir Data
  5. Skopiuj dane z Cloud Storage do Datafolderu tymczasowego :gsutil -m cp -R gs://BUCKET_NAME/FOLDER_OR_FILE_PATH ./Data
  6. Skopiuj dane do pliku zip: zip -r Data.zip Data
  7. Pobierz plik zip, uruchamiając dl Data.ziplub: otwierając menu „...” na pasku narzędzi, naciskając „Pobierz plik”, wpisując Data.zipi naciskając „Pobierz”.

Jako alternatywa dla kroków 6 i 7 (lub jeśli chcesz mieć plik tar zamiast zip):

. . 6b. Naciśnij ikonę komputera (lub ołówek) na pasku narzędzi, aby otworzyć eksplorator środowiska Cloud Shell w nowej karcie.
. . 7b. Kliknij prawym przyciskiem Datafolder w przeglądarce katalogów po lewej stronie i naciśnij „Pobierz”. Plik tar zostanie pobrany na komputer lokalny, który możesz następnie rozpakować za pomocą 7-Zip lub podobnego.

Venryx
źródło
7
Ten zadziałał dla mnie jak urok, BEZ płatnego pakietu!
nipunasudha
Czy istnieje ograniczenie rozmiaru folderu tymczasowego? Po mojej stronie przestaje kopiować po 54%. Próbuję przenieść 8,4 GB zdjęć, aby je pobrać.
trudneQuestions
1
@toughQuestions Nie wiem; Nigdy nie próbowałem pobrać tak dużej ilości treści. Zakładając, że tak (na podstawie opinii), sugerowałbym po prostu zainstalowanie programu gsutil na komputerze lokalnym i uruchomienie go z tego miejsca: stackoverflow.com/q/39137053
Venryx
Spróbuję, dzięki :-)
trudne pytania
1
Istnieje limit 5 GB, więc jest przydatny tylko do mniejszych rzeczy. Jednak fajne rozwiązanie.
user32149
16

W przypadku, gdy gsutilrzuca wyjątek ( CommandException: Wrong number of arguments for "cp" command.), spróbuj wykonać następujące czynności:

gsutil -m cp -R gs://BUCKETNAME ./LOCALFOLDERNAME
Lausbert
źródło
Czy ta usługa jest bezpłatna czy płatna? Podobnie jak operacje klasy A?
Sudhanshu Gaur
2

W moim przypadku działało przejście do zasobnika w interfejsie użytkownika przeglądarki i kliknięcie lewym przyciskiem myszy na plik i „Zapisz plik”.
Jest to oczywiście okropne w przypadku wielu plików, ale można je oczywiście skompresować do jednego pliku (za pomocą konsoli Google Cloud).

zobacz ten wątek.

Ponadto, jeśli nie masz zasobnika , możesz go utworzyć , a następnie przesłać do niego za pomocą konsoli gcloud, npgsutil cp file.tgz gs://<bucket>

Matthias
źródło
2
Właśnie zdałem sobie sprawę, dlaczego odpowiedź Sebastiana nie zadziałała dla mnie… z jakiegoś powodu byłem całkowicie ślepy na fakt, że muszę zainstalować gsutil na moim lokalnym komputerze . Nadal używam go w konsoli gcloud w przeglądarce, pobierając ją do mojej maszyny wirtualnej projektu.
Matthias
Powłoka gcloud w przeglądarce obsługuje pobieranie plików vm na komputer lokalny, więc w rzeczywistości nie musisz instalować gsutilna komputerze lokalnym: stackoverflow.com/a/59567734/2441655
Venryx
@Dilvane jakoś -m opcja nie działa dla mnie ... ale -r działa jak poniżej ... bharathkumarraju @ R77-NB193 raju% gsutil cp -r gs: // testbucket. Kopiowanie gs: //testbucket/asset-manifest.json ...
BharathKumarRaju Dasararaju