Pregunta

He creado un PHP-script para actualizar un servidor web que es vivir dentro de un directorio local.Estoy migrando el script en Python.Funciona muy bien para la mayor parte, pero después de un comando PUT, el tamaño del archivo aparece para cambiar.Por lo tanto, el tamaño del archivo es diferente de la del archivo en el servidor.

Una vez que descargar de nuevo el archivo desde el servidor FTP, la única diferencia es la CR/LF marca.Esto me molesta porque el mismo guión es comparar el tamaño de los archivos de actualización.También, en caso de que no significa nada, el script funciona perfectamente en 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()

Alguna sugerencia?

¿Fue útil?

Solución

Hay que abrir la locfile en binario usando rb?

f = open (locfile, "rb")

Otros consejos

Bueno si quieres ir en las propiedades del archivo en Windows o un *nix medio ambiente, se dará cuenta de dos tamaños.Uno es el tamaño de sector, y uno es el tamaño real.El tamaño del sector es el número de sectores en bytes que se utilizan en su disco duro.Eso es debido a que dos de los archivos no puede ser en el mismo sector, con la mayoría de los sistemas modernos de archivos, así que si tu archivo se llena hasta la mitad del sector el sector en su conjunto está marcado como lleno.

Así que usted puede comparar el sector de tamaño de archivo para el tamaño real del archivo en el servidor FTP, o viceversa.

Pequeños archivos de tomar un nodo en el sistema de archivos sea cual sea el tamaño que sea.

Mi anfitrión tiende a informar de todos los archivos pequeños como 4kb en ftp pero en un shell ofrece un tamaño exacto, por lo que podría ser una característica común a los clientes de ftp.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top