Скачивание файлов и папок из корзины Google Storage в локальную папку [закрыто]

90

Как лучше всего загрузить все файлы из Google Cloud Storage?

Дилвейн Занардин
источник

Ответы:

150

Взгляните на инструмент gsutil . Вы можете использовать команду cp с опциями -R(рекурсивный) и -m(многопоточность).

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

И если вы хотите попробовать это с публичным ведром, попробуйте

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

Ускорение, обеспечиваемое многопоточностью, может быть весьма значительным:

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

real    0m12.534s

против

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

real    0m3.345s
Себастьян Крефт
источник
Я бы посоветовал не загружать вслепую ведро uspto-pair - там куча документов ...
Cebjyre
1
Здесь очень важно установить gsutil на локальный компьютер . Вы можете, например, сделать это, установив Google Cloud SDK. Я забыл об этом шаге и продолжал использовать gsutil на локальной виртуальной машине моего проекта как идиот.
Matthias
Эта услуга бесплатная или платная? Нравится операции класса А?
Судханшу Гаур
2
Если вы загружаете несколько больших файлов из корзины на традиционный жесткий диск (не на SSD), не используйте этот -mфлаг для многопоточности. Это значительно уменьшит время отклика диска, поскольку он будет постоянно перемещать иглы между разными файлами. -mСначала я попробовал использовать , но диск стал узким местом. Отсутствие -mфлага сохранит запись жесткого диска в том же физическом месте на диске.
JR
это замечательно! Спасибо
kninjaboi
67

Для тех, кто не хочет устанавливать локальные инструменты, например gsutil, есть способ полностью загрузить файлы и папки из Google Cloud Storage прямо в браузере:

  1. Перейдите к: https://console.cloud.google.com/storage/browser/BUCKET_NAME.
  2. Найдите папку / файл, который хотите загрузить.
  3. В правом верхнем углу страницы нажмите значок кода, чтобы открыть Cloud Shell.
  4. Создайте временную папку на виртуальной машине Cloud Shell: mkdir Data
  5. Скопируйте данные облачного хранилища во временную Dataпапку:gsutil -m cp -R gs://BUCKET_NAME/FOLDER_OR_FILE_PATH ./Data
  6. Скопируйте данные в zip-файл: zip -r Data.zip Data
  7. Загрузите zip-файл, запустив dl Data.zipили: открыв раскрывающийся список «...» на панели инструментов, нажав «Загрузить файл», набрав Data.zipи нажав «Загрузить».

В качестве альтернативы шагам 6 и 7 (или если вам нужен tar-файл вместо zip):

. . 6б. Нажмите значок компьютера (или карандаш) на панели инструментов, чтобы открыть проводник среды Cloud Shell на новой вкладке.
. . 7b. Щелкните правой кнопкой мыши Dataпапку в обозревателе каталогов слева и нажмите «Загрузить». На ваш локальный компьютер будет загружен tar-файл, который затем можно будет извлечь с помощью 7-Zip или подобного.

Venryx
источник
7
Этот сработал для меня как шарм, БЕЗ каких-либо платных пакетов!
нипунасудха
Есть ли ограничение на размер временной папки? С моей стороны перестает копировать после 54%. Я пытаюсь переместить 8,4 ГБ изображений, чтобы загрузить их.
toughQuestions
1
@toughQuestions я не знаю; Я никогда не пробовал скачивать столько контента. Предполагая, что это так (из ваших отзывов), я бы предложил просто установить программу gsutil на ваш локальный компьютер и запускать ее оттуда: stackoverflow.com/q/39137053
Venryx
Я попробую, спасибо :-)
toughQuestions
1
Существует ограничение в 5 ГБ, поэтому оно полезно только для небольших вещей. Хотя крутое решение.
user32149
16

В случае gsutilвозникновения исключения ( CommandException: Wrong number of arguments for "cp" command.) попробуйте следующее:

gsutil -m cp -R gs://BUCKETNAME ./LOCALFOLDERNAME
Лаусбер
источник
Эта услуга бесплатная или платная? Нравится операции класса А?
Судханшу Гаур
2

В моем случае сработал переход к корзине в графическом интерфейсе браузера, щелчок левой кнопкой мыши по файлу и «Сохранить файл».
Это явно ужасно для нескольких файлов, но вы, конечно, можете сжать их в один файл (с помощью облачной консоли Google).

см. эту ветку.

Кроме того, если у вас нет корзины , вы можете создать ее , а затем загрузить в нее с помощью консоли gcloud, напримерgsutil cp file.tgz gs://<bucket>

Матиас
источник
2
Я просто понял, почему ответ Себастьяна не сработал для меня ... по какой-то причине я был полностью слеп к тому факту, что мне нужно было установить gsutil на моем локальном компьютере . Продолжал использовать его в консоли gcloud, загружая в браузере на мою проектную виртуальную машину.
Matthias
Оболочка gcloud в браузере поддерживает загрузку файлов vm на локальный компьютер, поэтому вам не нужно устанавливать gsutilна локальный компьютер: stackoverflow.com/a/59567734/2441655
Venryx
@Dilvane почему-то опция -m у меня не работает ... но -r делает, как показано ниже ... bharathkumarraju @ R77-NB193 raju% gsutil cp -r gs: // testbucket. Копирование gs: //testbucket/asset-manifest.json ...
БхаратКумар Раджу Дасарараджу
2

Вот что у меня сработало:

Шаг 1. Установите gsutil на локальный компьютер: https://cloud.google.com/storage/docs/gsutil_install?hl=fr

Шаг 2: скопируйте файлы из корзины на локальный компьютер, выполнив команду:gsutil cp [-r if repository] gs://[BUCKET_NAME]/[OBJECT_NAME] [OBJECT_DESTINATION_IN_LOCAL]

HLeb
источник