curl: (56) Ошибка в GCP SDK, но не в VM - PullRequest
0 голосов
/ 23 апреля 2020

Цель

Я хочу загрузить большой zip-файл из онлайн-базы данных в корзину GCP. Я не очень техничен, когда дело доходит до GCP и работы в терминале, и я столкнулся с некоторыми проблемами, которые мне не удалось устранить.

То, что я пробовал

Я пытался сделать выше несколько разных способов. Сначала я попробовал следующую команду в облачной оболочке на GCP: curl -O https://website/file.zip | gsutil cp - gs://bucke/file.zip, не сработало, поэтому я попробовал ее в оболочке Google Cloud SDK на своем компьютере Windows и получил следующий вывод (cURL без gsutil выдает то же самое выходные данные):

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  1 43.5G    1  735M    0     0   239k      0 52:55:07  0:52:23 52:02:44     0
curl: (56) Send failure: Connection was reset
'count' is not recognized as an internal or external command,
operable program or batch file.
Copying from <STDIN>...
/ [1 files][    0.0 B/    0.0 B]
Operation completed over 1 objects.

Наконец, я попробовал команду cURL на виртуальной машине (Ubuntu), и она работала нормально. Единственная проблема в том, что у меня недостаточно прав для загрузки файлов в корзину GCP с помощью gsutil (я получаю ошибку 403, также при загрузке других файлов).

Предполагаемая проблема

Я заметил, что я не единственный, у кого похожая проблема, поэтому я рассмотрел несколько предложенных решений ( 1 , 2 , 3 ), В этом решении упоминается, что с моей системой должны быть некоторые проблемы, так как она отлично работает в ВМ. Когда я пытаюсь загрузить и загрузить небольшой файл из облачной оболочки SDK на моем компьютере (с помощью той же команды) с другого веб-сайта, он работает нормально. Загрузка намного меньшего размера zip-файла с того же веб-сайта не возвращает ошибку, как ранее, но это вместо этого:

 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12.2M  100 12.2M    0     0   313k      0  0:00:40  0:00:40 --:--:--  354k

'count' is not recognized as an internal or external command,
operable program or batch file.
Copying from <STDIN>...
/ [1 files][    0.0 B/    0.0 B]      0.0 B/s
Operation completed over 1 objects.

, и когда я загружаю zip-файл из корзины GCP, он кажется недействительным почтовый файл

Так что, очевидно, проблема заключается в подключении веб-сайта к моему компьютеру. (потому что другой компьютер с тем же веб-сайтом работает, а другой веб-сайт с тем же компьютером работает), я предполагаю, что это может быть проблемой брандмауэра, но мои знания об этом очень ограничены. Может кто-нибудь помочь мне набрать go отсюда, чтобы продолжить устранение неполадок? Как мне выяснить, действительно ли это проблема с брандмауэром, и как мне это исправить (или найти информацию о том, как сделать это шаг за шагом)?

Любая помощь очень ценится!

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

При использовании потоковой загрузки для больших файлов рекомендуется сначала записать данные в локальный файл [1]. Таким образом, вы можете попробовать:

Во-первых, загрузить в локальный файл.

curl -O URL

Во-вторых, загрузить файл в ваше ведро [2]

gsutil cp file gs: // bucket

Также, возможно, вы можете попробовать выполнить тест с небольшим файлом:

curl "http://nginx.org/download/nginx-1.17.10.zip" | gsutil cp - "gs: //bucke/nginx-1.17.10.zip"

[1] https://cloud.google.com/storage/docs/gsutil/commands/cp#streaming -передачи

[2] https://cloud.google.com/storage/docs/gsutil/commands/cp#copying -tofrom-подкаталоги-раздаточные-трансферты по-машины

0 голосов
/ 24 апреля 2020

Удалить -O из команды curl. Ваш файл сохраняется локально (проверьте наличие файла file.zip в вашем локальном каталоге), вместо того, чтобы отправлять его в gsutil.

curl https://website/file.zip | gsutil cp - gs://bucke/file.zip

-O флаг для вывода сил скручивания в файл вместо STDOUT, поэтому следующая команда в конвейере (gsutil) ничего не получает.

...