Я пытаюсь отправить файл на FTP-сервер, используя Perl. Программа работает почти хорошо, но размер файла изменился (размер файла на удаленном хосте отличается от localhost). После проверки я понимаю, что это не ошибка моего Perl-скрипта, а ошибка клиента FTP.
Допустим, у меня есть компьютер (A) под управлением Cent-Os 5. Я хочу отправить файл wav (802_20130511_111637.wav - 207 084 байт) на удаленный компьютер (B). FTP-сервером на (B) является File Zillar 0.9.41.
Я выполнил следующие команды из консоли (A) (для безопасности я изменил имя хоста и имя пользователя):
[root@abcxyz 1234]# ls -l
total 464
-rw------- 1 asterisk asterisk 99564 May 8 10:39 0913255236_20130508103929.wav
-rw------- 1 asterisk asterisk 127084 May 7 22:42 0918272810_20130507224217.wav
-rwxrwxrwx 1 asterisk asterisk 16488 May 7 16:45 1234.wav
-rw-r--r-- 1 asterisk asterisk 207084 May 11 11:17 802_20130511_111637.wav
[root@abcxyz 1234]# ftp
ftp> open xxx.xxx.xxx.xxx
Connected to xxx.xxx.xxx.xxx.
220 FileZilla Server version 0.9.41 beta
502 GSSAPI authentication not implemented
504 Auth type not supported
KERBEROS_V4 rejected as an authentication type
Name (xxx.xxx.xxx.xxx:root): my_user_name
331 Password required for my_user_name
Password:
230 Logged on
Remote system type is UNIX.
ftp> put 802_20130511_111637.wav
local: 802_20130511_111637.wav remote: 802_20130511_111637.wav
227 Entering Passive Mode (xxx,xxx,xxx,xxx,195,159)
150 Connection accepted
226 Transfer OK
207503 bytes sent in 0.029 seconds (7.1e+03 Kbytes/s)
ftp>
Как вы видете. Размер файла (в строке 6) составляет 207084 байта. Но размер (почти в последней строке) составляет 207503 байта.
Собственно, размер файла изменился после отправки через FTP. Я загрузил два файла выше (один из (A) и один из (B)) на другой компьютер (под управлением Windows). Один из (A) можно сыграть хорошо, а из (B) - нет.
Пожалуйста, поправьте меня, если я сделал что-то не так. Почему размер файла изменился, хотя я использовал собственный FTP-клиент?