Как я могу перенести хранилище из URL в Google Cloud, если данные не являются общедоступными? - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу перенести большой объем данных из базы данных, к которой у меня есть доступ, используя имя пользователя и пароль, в корзину Google Cloud. Я попробовал следующее, но безуспешно:

curl -s -u user:password URL/to/file.zip | gsutil cp - gs://bucket/file.zip 

со следующим выводом:

[2] 675
[3] 676
Copying from <STDIN>...
/ [1 files][    0.0 B/    0.0 B]
Operation completed over 1 objects.
[1]   Done                    curl -s -u user:password URL/to/file
[3]+  Done                    count=1

Может кто-нибудь объяснить мне этот вывод? (что означают [2] 675 и [3] 676? 4-я строка предполагает, что для загрузки требуется только один файл размером 0,0 В? Что означает [3]+ Done..., если найден только один файл?)

Ссылка после [1] Done ... curl -s -u user:pasword является ссылкой на загрузку (когда я нажимаю на нее, загрузка начинается на моем локальном компьютере). В корзине теперь есть файл с именем file.zip, но он не содержит никаких данных. Почему данные не загружаются в корзину?

Спасибо!

ОБНОВЛЕНИЕ Попытался разобрать код и сначала использовать wget для загрузки файла (потому что wget дает мне информацию, почему он не работает). Но это то, где go кажется неправильным.

user@cloudshell:~ (project_ID)$ wget --user=<user> --password=<password> https://website.com/download/image?key=<key>&zip=<zip_name>.zip
[1] 1044
[2] 1045
--2020-02-07 11:47:35--  https://website.com/download/image?key=<key>
[2]+  Done                    count=1
user@cloudshell:~ (project_ID)$ Resolving website.com (website.com)... xxx.xxx.xx.xxx
Connecting to website.com (website.com)|xxx.xxx.xx.xxx|:443... connected.
HTTP request sent, awaiting response... 403
2020-02-07 11:47:38 ERROR 403: (no description).

Итак, мне кажется, что я могу подключиться к веб-сайту, но что-то не так с HTTP-запросом. Как я могу это исправить?

1 Ответ

0 голосов
/ 04 февраля 2020

gsutil - правильная команда для отправки данных sh в облачное хранилище Google.

Чтобы упростить эту команду, вы можете разбить ее на две команды: 1. Команда для чтения данных из базы данных. и поместите в почтовый файл curl -s -u user:password URL/to/file.zip -o /tmp/file.zip

После того, как curl загрузит файл в вашу локальную систему, вы можете загрузить его в GCS. gsutil cp /tmp/file.zip gs://bucket/file.zip

Я видел подобные случаи при использовании трубы. Я бы посоветовал загрузить файл на локальный компьютер, используя curl или wget, затем проверить размер и затем pu sh в GCS, используя gsutil

...