Différences de taille de fichier après la copie d'un fichier sur un serveur via FTP

J'ai créé un script PHP pour mettre à jour un serveur Web qui se trouve dans un répertoire local. Je migre le script vers Python. Cela fonctionne bien pour la plupart, mais après une commande PUT, la taille du fichier semble changer. Ainsi, la taille du fichier est différente de celle du fichier sur le serveur.

Une fois que je télécharge à nouveau le fichier depuis le serveur FTP, la seule différence est la marque CR/LF. Cela m'agace car le même script compare la taille des fichiers à mettre à jour. De plus, au cas où cela voudrait dire quelque chose, le script fonctionne parfaitement en 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()

Des suggestions ?

请先 登录 后评论

1 réponses

Nick Berardi

Eh bien, si vous allez dans les propriétés de votre fichier sous Windows ou dans un environnement *nix, vous remarquerez deux tailles. L'un est la taille du secteur, et l'autre est la taille réelle. La taille de 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, tout le secteur est marqué comme rempli.

Vous comparez donc peut-être la taille du fichier du secteur à la taille réelle du fichier sur le serveur FTP ou vice versa.

请先 登录 后评论