Jaki jest najlepszy sposób pobierania wszystkich plików z Google Cloud Storage?
Jaki jest najlepszy sposób pobierania wszystkich plików z Google Cloud Storage?
Odpowiedzi:
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
-m
flagi 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 -m
flagi spowoduje, że dysk twardy będzie zapisywał się w tej samej fizycznej lokalizacji na dysku.
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:
mkdir Data
Data
folderu tymczasowego :gsutil -m cp -R gs://BUCKET_NAME/FOLDER_OR_FILE_PATH ./Data
zip -r Data.zip Data
dl Data.zip
lub: otwierając menu „...” na pasku narzędzi, naciskając „Pobierz plik”, wpisując Data.zip
i 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 Data
folder 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.
W przypadku, gdy gsutil
rzuca 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
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>
gsutil
na komputerze lokalnym: stackoverflow.com/a/59567734/2441655
Oto, co zadziałało dla mnie:
Krok 1: zainstaluj gsutil na komputerze lokalnym: https://cloud.google.com/storage/docs/gsutil_install?hl=fr
Krok 2: skopiuj pliki z zasobnika na maszynę lokalną, wykonując polecenie:gsutil cp [-r if repository] gs://[BUCKET_NAME]/[OBJECT_NAME] [OBJECT_DESTINATION_IN_LOCAL]