Загрузка общедоступного каталога данных из облачного хранилища Google с помощью утилит командной строки, таких как wget - PullRequest
0 голосов
/ 12 ноября 2018

Я хочу загрузить общедоступные данные из облачного хранилища Google.Однако, поскольку мне нужно находиться в среде Python3.x, невозможно использовать gsutil.Я могу загрузить отдельные файлы с помощью wget как

wget http://storage.googleapis.com/path-to-file/output_filename -O output_filename

Однако такие команды, как

wget -r --no-parent https://console.cloud.google.com/path_to_directory/output_directoryname -O output_directoryname

, похоже, не работает, поскольку они просто загружают индексный файл для каталога.Также не делаются попытки rsync или curl, основанные на некоторых начальных попытках.Любая идея о том, как загрузить общедоступные данные в облачное хранилище Google в качестве каталога?

1 Ответ

0 голосов
/ 13 ноября 2018

Подход, который вы упомянули выше, не работает, потому что Google Cloud Storage не имеет настоящих «каталогов».Например, «путь / к / некоторым / файлам / файлу.txt» - это полное имя этого объекта.Случайно с таким же именем объект «path / to / some / files / file2.txt» имеет один и тот же префикс имен.

Что касается того, как вы можете получить эти файлы: API-интерфейсы GCS (как XML, так иJSON) позволит вам составить список объектов для родительского сегмента, указав префикс;в этом случае вы хотите, чтобы все объекты начинались с префикса "путь / к / некоторым / файлам /".Затем вы можете сделать отдельные HTTP-запросы для каждого из объектов, указанных в теле ответа.При этом, вы, вероятно, найдете это гораздо проще сделать с помощью одной из клиентских библиотек GCS, таких как библиотека Python .

Кроме того, в настоящее время gsutil имеет GitHubпроблема открыта для отслеживания добавления поддержки Python 3 .

...