Если 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 или управляемую службу, такую какСлужба передачи данных на хранение