Загрузите почтовые индексы в облаке Google через терминал

В облаке Google хранится большое количество zip-файлов, которые я хотел бы загрузить, я хотел бы, чтобы скрипт делал это, поэтому мне не нужно делать это по одному.

Я попытался загрузить один файл, используя

curl -o https://storage.cloud.google.com/foo.zip

но я получаю сообщение об ошибке, в котором говорится, что URL не указан.

Может быть, curl - неправильная функция для этого?

Я хотел бы загрузить несколько почтовых индексов, размещенных в облаке Google, которые перечислены в файле .txt одновременно или один за другим.

Почему бы вам не использовать команду gsutil cp (cloud.google.com/storage/docs/gsutil/commands/cp)?

norbjd 30.05.2019 11:09

Спасибо, norbjd, я надеялся сделать это без использования Google Cloud.

heroZero 30.05.2019 11:46
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
2
104
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Есть 2 решения для загрузки ваших файлов с помощью командной строки.

Используйте gsutil

Вы можете просто использовать команду gsutil cp:

gsutil cp gs://[BUCKET_NAME]/foo.zip .

Вы также можете взглянуть на gsutil rsync команда.

Используйте cURL

Если использование gsutil невозможно, вы все равно можете использовать cURL, но вам может потребоваться пройти аутентификацию, если объект внутри вашей корзины не является общедоступным (я предполагаю, что вы не хотите, чтобы ваши объекты были здесь общедоступными).

Из документы о загрузке объектов (вкладка REST APIS):

curl -X GET \
    -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -o "[SAVE_TO_LOCATION]" \
    "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?alt=media"

Как видите, для этого вам понадобится токен авторизации oauth2 (см. документы о том, как пройти аутентификацию в облачном хранилище).

Однако, даже если это возможно, я настоятельно рекомендую вам использовать первый вариант (gsutil), как указано в документы:

To easily download all objects in a bucket or subdirectory, use the gsutil cp command.

Другие вопросы по теме