Использование файла загрузки CURL на FTPS-сервере, но вывод имеет неправильный размер

Я пытаюсь загрузить файл на FTP-сервер с помощью CURL, но когда я использую 2 команды, это дает 2 разных результата. Пример: у меня есть файл fileName.zip размером 40mb.

Когда я использую первую команду:

curl --insecure -u имя_пользователя:пароль ftps://хост:порт//download/folder1/имя_файла.zip --output имя_файлаDownload.zip

Он вернет мне файл fileNameDownload.zip размером 40 МБ, с этим файлом все в порядке.

И пробую другим способом скачать этот файл командой:

curl --insecure -u имя_пользователя:пароль ftps://хост:порт -X "RETR загрузка/папка1/имя_файла.zip" --output имя_файлаDownload.zip

Он вернет мне файл fileNameDownload.zip размером 40,2 МБ, и я не могу открыть этот файл.

Как сделать вторую команду правильной?


person Ngọc Tú    schedule 05.10.2018    source источник
comment
Вы просматривали второй файл в текстовом редакторе? Я предполагаю, что он содержит информацию заголовка в начале.   -  person PowerStat    schedule 05.10.2018
comment
Я уже пытаюсь снова протестировать его с файлом textFIle.txt, и вторая команда работает нормально, но когда я заархивирую textFile.txt в textFIle.zip и снова загружу с помощью второй команды, он вернет testFile.zip, но я не могу распаковать этот файл   -  person Ngọc Tú    schedule 05.10.2018
comment
И когда я открываю 2 zip-файла в текстовом редакторе и копирую содержимое на diffchecker.com/diff и он сказал, что два файла идентичны, но 1-я команда дала мне файл размером 701 байт, а 2-я команда дала мне файл размером 704 байта.   -  person Ngọc Tú    schedule 05.10.2018
comment
!Отличается от двух файлов. Я нашел отличие от двух файлов   -  person Ngọc Tú    schedule 05.10.2018
comment
Вы используете последнюю версию curl? На какой платформе? Если нет, попробуйте их — если да, то я думаю, стоит открыть отчет об ошибке: curl.haxx.se /docs/bugs.html   -  person PowerStat    schedule 05.10.2018
comment
Я обнаружил проблему, потому что я использовал параметр -X, и у CURL есть сценарий для этого, в сценарии шагнул установить TYPE = A. (В 1-й команде CURL установить TYPE = I;) Запрос TYPE управляет двоичным флагом. У него есть параметр. Есть четыре возможности для параметра: A: Отключите двоичный флаг. A N: Отключите двоичный флаг. I: Включите двоичный флаг. L 8: Включите двоичный флаг. Вот почему я загружаю файл с неправильным содержимым.   -  person Ngọc Tú    schedule 05.10.2018
comment
Круто, теперь вы можете написать свой собственный ответ здесь ;-)   -  person PowerStat    schedule 05.10.2018


Ответы (1)


Я обнаружил проблему, потому что я использовал опцию -X, и у CURL есть скрипт для этого. В скрипте сделали шаг, чтобы установить TYPE = A. (В 1-й команде CURL установите TYPE = I)

Запрос TYPE управляет бинарным флагом. У него есть параметр. Возможны четыре варианта параметра:

A: Отключите двоичный флаг.

A N: Отключите двоичный флаг.

I: Включите двоичный флаг.

L 8: Включите двоичный флаг.

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

person Ngọc Tú    schedule 06.10.2018