Загрузить с URL в контейнер GCP

Загрузить с URL в контейнер GCP

Если URL-адрес указывает на большой файл, есть ли способ поместить этот файл в корзину, не загружая его локально и не загружая потом?

Есть ли более простой способ сделать это, кроме как создать образ Docker, который выполняет эту задачу, и запустить его в GCP?

решение1

Как упоминалось всвязь

1: Это можно сделать с помощью команды curl, передавая данные непосредственно в контейнер.

curl http://speedtest.tele2.net/10GB.zip | gsutil cp -gs://YOUR_BUCKET_NAME/10GB.zip

2: Файлы размером менее 4,6 ГБ.

Оригинальный подход: это работает, пока ваша загрузка меньше ~ 4,6 ГБ. Запустите Cloud Shell (первый значок в правом верхнем углу после входа в свой проект в GCP) и используйте wget для загрузки нужного вам файла. Например, чтобы загрузить 7-Zip, введите: wget https://www.7-zip.org/a/7z1805-x64.exeТеперь, когда файл находится в домашнем каталоге пользователя Cloud Shell, вы можете скопировать его в хранилище Google Cloud Storage с помощью команды gsutil:

gsutil cp ./7z1805-x64.exe gs://your_bucket_name/

3: Файлы размером более 4,6 ГБ.

Создайте каталог в домашнем каталоге пользователя Cloud Shell.mkdir ~/mybucket

Теперь смонтируйте ваш бакет в этом каталоге с помощью gcsfuse:

gcsfuse bucket_name ~/mybucket

Измените текущий каталог на каталог точки монтирования: cd mybucket(если вы хотите запустить «df -h.», чтобы увидеть, сколько места у вас есть в этой точке монтирования) Теперь используйте wget, чтобы загрузить файл непосредственно в ваш контейнер (пример с использованием файла размером 10 ГБ из Интернета):

wget https://speed.hetzner.de/10GB.bin

Для получения более подробной информации вы можете обратиться кдокументацияна услуги по передаче хранения и созданиюСписок URL-адресов.

решение2

Google Cloud Storage не предоставляет возможность загрузки объекта из URL.

Вам необходимо написать свой собственный код, использовать CLI или управляемую службу, такую ​​какСлужба передачи данных на хранение

Связанный контент