Скачивание файлов и папок из корзины 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 или подобного.


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]

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.