Różnice wielkości pliku po skopiowaniu pliku do przez serwer FTP

głosy
35

Stworzyłem PHP skrypt do aktualizacji serwera WWW, który jest na żywo wewnątrz katalogu lokalnym. Mam migracji skrypt w Pythonie. To działa dobrze w większości przypadków, ale po PUT polecenia wielkość pliku pojawi się zmienić. Zatem, rozmiar pliku jest inny od tego pliku na serwerze.

Raz ponownie pobrać plik z serwera FTP, jedyną różnicą jest znak CR / LF. To mnie denerwuje, bo sam skrypt jest porównanie wielkości plików, aby zaktualizować. Ponadto, w przypadku oznacza to wszystko, skrypt działa idealnie w PHP Via 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()

Jakieś sugestie?

Utwórz 05/08/2008 o 14:40
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
15

Czy trzeba otworzyć locfile binarnie użyciu rb?

f = open (locfile, "rb")
Odpowiedział 05/08/2008 o 14:45
źródło użytkownik

głosy
3

Cóż, jeśli przejdziesz na podstawie właściwości pliku w środowisku Windows lub * nix, można zauważyć dwa rozmiary. Jednym z nich jest rozmiar sektora, a jeden jest rzeczywisty rozmiar. Rozmiar sektora jest liczba sektorów w bajtach, które są używane w górę na dysku twardym. To dlatego, że dwa pliki nie mogą być w tym samym sektorze z najnowocześniejszych systemów plików, więc jeśli plik wypełnia połowę sektora cały sektor oznaczony jest jako wypełniony.

Tak może być porównanie rozmiaru pliku sektor do rzeczywistego rozmiaru pliku na serwerze FTP lub odwrotnie.

Odpowiedział 05/08/2008 o 14:45
źródło użytkownik

głosy
0

Małe pliki zajmują cały węzeł w systemie plików niezależnie od wielkości, który jest.

Gospodarz ma skłonność do zgłaszania wszystkich małych plików jak 4kB w ftp ale w powłoce daje dokładny rozmiar, więc może to być „funkcja” wspólne klienci FTP.

Odpowiedział 05/08/2008 o 16:59
źródło użytkownik

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