Другой файл после загрузки через FTP

Другой файл после загрузки через FTP

Как следует из заголовка, когда я загружаю файл (в моем случае зашифрованный jar) через FTP на мой сервер (работающий под управлением Ubuntu 20.04) и пытаюсь загрузить его, некоторые байты jar, похоже, изменяются (а также относительная контрольная сумма sha).

Кто-нибудь знает, почему это происходит и как это «исправить»?

Данные исходного файла:

исходные данные файла

Подробности загруженного файла:

сведения о загруженном файле

Исходные байты файла:

байты исходного файла

Байты загруженного файла:

загружено байт файла

Обновлять: по-видимому, это происходит только если я загружаю файл с расширением jar. Я попробовал переименовать файл из "Test_original.jar" в "Test_original" (без расширения) и загрузить, sha256 такой же, как у моего файла на рабочем столе.

Обновление ч.2: Судя по всему, на сервере копия совпадает с оригиналом, поэтому я предполагаю, что что-то пошло не так во время загрузки / обработки файла сервером при поступлении запроса на загрузку (?)

решение1

Скорее всего, вы использовали машину с Windows и забыли воспользоваться binaryопцией FTP.

Поскольку Windows использует другие окончания строк ( \r\n), чем остальной мир, по умолчанию все \n, что не начинается с a, преобразуется \rв a \r\n. Это имеет ограниченный смысл для текстовых файлов, но разрушительно для двоичных файлов.

Как этого избежать, зависит от используемого вами FTP-клиента: для клиента командной строки просто введите binaryпосле входа в систему, для клиента с графическим интерфейсом найдите соответствующий параметр конфигурации.

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