Bir sunucu üzerinden FTP dosya kopyaladıktan sonra dosya boyutu farklılıklar

3 Cevap php

I have created a PHP-script to update a webserver that is live inside a local directory. I'm migrating the script into Python. It works fine for the most part, but after a PUT command the size of the file appears to change. Thus, the size of the file is different from that of the file on the server. Once I download again the file from the FTP server, the only difference is the CR/LF mark. This annoys me because the same script is comparing the size of the files to update. Also, in case it means anything, the script works perfectly in PHP vía 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()

###

Herhangi bir öneriniz?

3 Cevap

Eğer "rb" kullanarak ikili locfile açmak gerekiyor?

f = open (locfile, "rb")

Windows veya Unix ortamında dosyanızın özelliklerinin altında gidersek, iki boyutlarını göreceksiniz. Bir kesim boyutu olduğunu ve bir gerçek boyutudur. Sektör büyüklüğü sabit diskinize kadar kullanılan bayt sektör sayısıdır. Bu iki dosya en modern dosya sistemleri ile aynı sektörde olamaz, çünkü, bu nedenle dosya sektörün yarısını doldurur eğer doldurdu gibi tüm sektör işaretlenir.

Yani FTP sunucusunda veya tersi gerçek dosya boyutu sektör dosya boyutunu karşılaştırarak olabilir.

Küçük dosya boyutu ne olursa olsun dosya sistemi üzerinde bir bütün düğüm sürebilir.

Benim ev sahibi ftp 4KB'a tüm küçük dosyaları rapor eğilimindedir ama ftp müşterilerine ortak bir 'özelliği' olabilir bu yüzden bir kabuk içinde bir doğru boyutu verir.