Размер файла различия после копирования файла на сервере По протоколу FTP

голоса
35

Я создал PHP-скрипт для обновления веб-сервера, который живет внутри локальной директории. Я мигрирующий скрипт в Python. Он отлично работает по большей части, но после PUT команды размера файла, как представляется, изменить. Таким образом, размер файла отличается от файла на сервере.

После того, как я снова скачать файл с сервера FTP, единственным отличием является / LF знак CR. Это раздражает меня, потому что тот же сценарий сравнивает размер файлов для обновления. Кроме того, в случае, если это означает что-нибудь, скрипт отлично работает в 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()

Какие-либо предложения?

Задан 05/08/2008 в 14:40
источник пользователем
На других языках...                            


3 ответов

голоса
15

Вам нужно открыть locfile в двоичной системе с использованием ли rb?

f = open (locfile, "rb")
Ответил 05/08/2008 d 14:45
источник пользователем

голоса
3

Ну, если вы идете в свойствах вашего файла в Windows, или среде * NIX, вы заметите два размера. Одним из них является размер сектора, и один фактический размер. Размер сектора является число секторов в байтах, которые используются на вашем жестком диске. Это происходит потому, что два файла не может быть в том же секторе с большинством современных файловых систем, так что если ваш файл заполняет половину сектора весь сектор помечается как заполнены.

Таким образом, вы можете быть сравнивая размер файла сектора к фактическому размеру файла на FTP-сервер или наоборот.

Ответил 05/08/2008 d 14:45
источник пользователем

голоса
0

Небольшие файлы занимают весь узел в файловой системе, независимо от размера, что есть.

Мой хозяин, как правило, сообщать о всех мелких файлах 4kb в FTP, но в оболочке дает точный размер, так что это может быть «особенность», общая для FTP-клиентов.

Ответил 05/08/2008 d 16:59
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more