Завантажте файли та папки з відра 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 на локальній віртуальній машині свого проекту, як ідіот.
Маттіас

Ця послуга є безкоштовною або безкоштовною? Як операції класу А?
Судханшу Гаур

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 у новій вкладці.
. . 7б. Клацніть правою кнопкою миші 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 у браузері, завантажуючи там мою віртуальну машину проекту.
Маттіас

У gcloud оболонка підтримує в браузері скачуванні своїх файлів на ут локальній машині, так що ви на самому справі не потрібно встановлювати gsutilна локальному комп'ютері: stackoverflow.com/a/59567734/2441655
Venryx

@Dilvane якось -m варіант не працює для мене ... але -r робить, як показано нижче ... bharathkumarraju @ R77-NB193 raju% gsutil cp -r gs: // testbucket. Копіювання gs: //testbucket/asset-manifest.json ...
BharathKumarRaju Dasararaju

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.