Dateigröße Unterschiede nach einer Datei auf einem Server über das Kopieren von FTP

stimmen
35

Ich habe ein PHP-Skript erstellt einen Webserver zu aktualisieren, die leben in einem lokalen Verzeichnis ist. Ich bin der Migration das Skript in Python. Es funktioniert gut für den größten Teil, aber nach einem PUT-Befehl der Größe der Datei zu ändern scheint. Somit ist die Größe der Datei unterscheidet sich von derjenigen der Datei auf dem Server.

Sobald ich wieder die Datei vom FTP-Server herunterzuladen, ist der einzige Unterschied die CR / LF-Marke. Das ärgert mich, weil das gleiche Skript wird die Größe der Dateien vergleichen zu aktualisieren. Auch im Fall bedeutet es etwas, das Skript funktioniert perfekt 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()

Irgendwelche Vorschläge?

Veröffentlicht am 05/08/2008 um 14:40
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
15

Müssen Sie mit dem LOCFILE binär öffnen rb?

f = open (locfile, "rb")
Beantwortet am 05/08/2008 um 14:45
quelle vom benutzer

stimmen
3

Nun, wenn Sie unter den Eigenschaften der Datei in Windows oder einer * nichts Umgebung gehen, werden Sie zwei Größen bemerken. Eine davon ist die Sektorgröße, und man ist die tatsächliche Größe. Die Sektorgröße ist die Anzahl der Sektoren in Bytes, die auf Ihrer Festplatte verbraucht werden. Das ist, weil zwei Dateien nicht im gleichen Sektor mit den meisten modernen Dateisystemen sein können, so dass, wenn Sie Ihre Datei Hälfte des Sektors der gesamte Sektor füllt als gefüllt markiert.

So könnten Sie die Sektor Dateigröße auf die tatsächliche Dateigröße auf dem FTP-Server oder umgekehrt werden, zu vergleichen.

Beantwortet am 05/08/2008 um 14:45
quelle vom benutzer

stimmen
0

Kleine Dateien nehmen einen ganzen Knoten auf dem Dateisystem, was Größe, die nach oben.

Mein Gastgeber neigt alle kleine Dateien als 4 kb in ftp zu berichten, aber in einer Shell gibt eine genaue Größe, so dass es ein ‚Feature‘ gemeinsam FTP-Clients sein könnte.

Beantwortet am 05/08/2008 um 16:59
quelle vom benutzer

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