les différences de taille de fichier après la copie d'un fichier sur un serveur FTP vía

voix
35

J'ai créé un script PHP pour mettre à jour un serveur web qui est en direct dans un répertoire local. Je migration le script en Python. Il fonctionne très bien pour la plupart, mais après une commande PUT la taille du fichier semble changer. Ainsi, la taille du fichier est différent de celui du fichier sur le serveur.

Une fois que je télécharger à nouveau le fichier à partir du serveur FTP, la seule différence est la marque CR / LF. Cela me fâche parce que le même script compare la taille des fichiers à mettre à jour. En outre, dans le cas où cela signifie quoi que ce soit, le script fonctionne parfaitement 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()

Aucune suggestion?

Créé 05/08/2008 à 14:40
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
15

Avez - vous besoin d'ouvrir le LOCFILE en binaire à l' aide rb?

f = open (locfile, "rb")
Créé 05/08/2008 à 14:45
source utilisateur

voix
3

Eh bien, si vous allez dans les propriétés de votre fichier dans Windows ou un environnement * nix, vous remarquerez deux tailles. L'un est la taille du secteur, et l'autre est la taille réelle. La taille du secteur est le nombre de secteurs en octets qui sont utilisés sur votre disque dur. C'est parce que deux fichiers ne peuvent pas être dans le même secteur avec la plupart des systèmes de fichiers modernes, donc si votre fichier remplit la moitié du secteur l'ensemble du secteur est marqué comme rempli.

Donc, vous pourriez être comparer la taille du fichier du secteur à la taille réelle du fichier sur le serveur FTP ou vice-versa.

Créé 05/08/2008 à 14:45
source utilisateur

voix
0

Les petits fichiers prennent un nœud tout sur le système de fichiers quelle que soit la taille qui est.

Mon hôte a tendance à signaler tous les petits fichiers comme 4kb ftp mais dans une coquille donne une taille précise de sorte qu'il pourrait être une « caractéristique » commun à ftp clients.

Créé 05/08/2008 à 16:59
source utilisateur

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