Различия в размере файла после копирования файла на сервер через FTP
Я создал PHP-скрипт для обновления веб-сервера, который находится внутри локального каталога. Я переношу скрипт на Python. По большей части он работает нормально, но после команды PUT размер файла, похоже, меняется. Таким образом, размер файла отличается от размера файла на сервере.
Как только я снова загружу файл с FTP-сервера, единственная разница - это отметка CR / LF. Это меня раздражает, потому что тот же сценарий сравнивает размер файлов для обновления. Кроме того, если это что-то значит, сценарий отлично работает в PHP через ftp_put.
from ftplib import FTP
ftpserver = "myserver"
ftpuser = "myuser"
ftppass = "mypwd"
locfile = "g:/test/style.css"
ftpfile = "/temp/style.css"
try:
ftp = FTP(ftpserver, ftpuser, ftppass)
except:
exit ("Cannot connect")
f = open (locfile, "r")
try:
ftp.delete (ftpfile)
except:
pass
# ftp.sendcmd ("TYPE I")
# ftp.storlines("STOR %s" % ftpfile, f)
ftp.storbinary("STOR %s" % ftpfile, f)
f.close()
ftp.dir (ftpfile)
ftp.quit()
Какие-либо предложения?
Ответов (3)3
Что ж, если вы войдете в свойства своего файла в Windows или среде * nix, вы заметите два размера. Один - размер сектора, а второй - фактический размер. Размер сектора - это количество секторов в байтах, которые используются на вашем жестком диске. Это связано с тем, что два файла не могут находиться в одном секторе с большинством современных файловых систем, поэтому, если ваш файл заполняет половину сектора, весь сектор помечается как заполненный.
Таким образом, вы можете сравнивать размер файла сектора с фактическим размером файла на FTP-сервере или наоборот.