Я соединяюсь с FTP-сервером для загрузки некоторых gzipped файлов, и я заметил что-то немного дезориентирующее о команде SIZE, и мой google-fu привел меня к сбою.
ftp> size file0001.xml.gz
213 2524751
ftp> nlist -ltr
...
-rw-r--r-- 1 anon anons 2515727 Jan 30 00:00 file0001.xml.gz
...
Размеры файла отличаются, (2524751! = 2515727), как Вы видите. Почему?
Я кратко считал ПРОТОКОЛ ПЕРЕДАЧИ ФАЙЛОВ (FTP) RCF0959 и нет никакого упоминания о команде SIZE, которую я позже узнал, чтобы быть нестандартным дополнением к протоколу.
Вот бит о размере байта, для удобства, от RFC:
byte size There are two byte sizes of interest in FTP: the logical byte size of the file, and the transfer byte size used for the transmission of the data. The transfer byte size is always 8 bits. The transfer byte size is not necessarily the byte size in which data is to be stored in a system, nor the logical byte size for interpretation of the structure of the data.
Что я пропускаю здесь?
Спасибо!
Mahmoud
Вы переключили ftp в binary
режим? ftp мог бы вычислять размер с измененными окончаниями строки?
2524751/2515727 * 255 = 255.91469384396638
Таким образом, это похоже на каждые 255 байтов в исходных полученных дополнительных 0,9 байтах - как раз, чтобы сжатый файл имел \n
преобразованный в \r\n
.