Как перенести изображения из общедоступной базы данных в Google Cloud Bucket без локальной загрузки - PullRequest
0 голосов
/ 07 марта 2019

У меня есть CSV-файл, содержащий более 10000 URL-адресов, указывающих на изображения в Интернете. Я хочу выполнить какое-то задание по машинному обучению. Я использую инфраструктуру Google Cloud Platform для этой задачи. Моя первая задача - перенести все эти изображения из URL-адресов в корзину GCP, чтобы я мог получить к ним доступ позже через док-контейнеры.

Я не хочу сначала загружать их локально, а затем загружать их, поскольку это просто слишком большая работа, вместо этого просто перенести их непосредственно в корзину. Я посмотрел на Storage Transfer Service и для своего конкретного случая, я думаю, я буду использовать список URL . Может ли кто-нибудь помочь мне понять, как мне поступить дальше. Это вообще возможный вариант? Если да, то как мне сгенерировать MD5, который указан здесь для каждого URL в моем списке, а также получить количество байтов для изображения для каждого URL?

1 Ответ

2 голосов
/ 07 марта 2019

Как вы отметили, служба передачи данных требует, чтобы вы предоставили ей MD5 каждого файла.К счастью, многие HTTP-серверы могут предоставить вам MD5 объекта, не требуя его загрузки.Отправка запроса HTTP HEAD может привести к тому, что сервер предоставит вам заголовок Content-MD5 в своем ответе, который может быть не в той форме, которая требуется для службы передачи данных, но его можно преобразовать в эту форму.

Недостатком здесь является то, что веб-серверы не обязательно будут предоставлять вам эту информацию.Нет способа узнать без проверки.

Другой вариант, который стоит рассмотреть, - это настроить один или несколько экземпляров GCE и запустить оттуда скрипт, чтобы загрузить объекты в ваш экземпляр GCE и оттуда загрузить их в GCS.Это по-прежнему предполагает загрузку их «локально», но локально больше не означает место вне Google Cloud, что должно существенно ускорить процесс.Вы также можете разделить работу, разделив ваш CSV-файл, скажем, на 10 файлов с 1000 объектами в каждом и настроив 10 экземпляров GCE для выполнения этой работы.

...