différence entre la taille du fichier du serveur FTP et la taille réelle du fichier

3

Je me connecte à un serveur FTP pour télécharger des fichiers compressés. J'ai remarqué quelque chose de déconcertant au sujet de la commande SIZE et mon google-fu m'a échoué.

ftp> size file0001.xml.gz
213 2524751

ftp> nlist -ltr
...
-rw-r--r--   1 anon  anons    2515727 Jan 30 00:00 file0001.xml.gz
...

La taille des fichiers est différente (2524751! = 2515727), comme vous pouvez le constater. Pourquoi?

J'ai brièvement lu le protocole RCF0959 de transfert de fichier (FTP) et il n'y a aucune mention de la commande SIZE, que j'ai découvert par la suite comme un ajout non standard au protocole.

Voici le bit sur la taille en octets, pour plus de commodité, de la RFC:

  byte size

     There are two byte sizes of interest in FTP:  the logical byte
     size of the file, and the transfer byte size used for the
     transmission of the data.  The transfer byte size is always 8
     bits.  The transfer byte size is not necessarily the byte size
     in which data is to be stored in a system, nor the logical byte
     size for interpretation of the structure of the data.

Qu'est-ce que j'oublie ici?

Merci!

Mahmoud

Mahmoud Abdelkader
la source

Réponses:

7

Avez-vous basculé ftp en binarymode? ftp est peut-être en train de calculer la taille avec des fins de lignes modifiées?

2524751/2515727 * 255 = 255.91469384396638

Ainsi, il semble que tous les 255 octets de l'original de 0,9 octets soient supplémentaires, un nombre suffisant pour qu'un fichier compressé soit \nconverti \r\n.

Douglas Leeder
la source
Hey Douglas! Désolé de vous revenir si tard. Le problème était que ce type était bien au format ascii, je l'utilisais via ftplib de python. Lorsque j'ai forcé un retrbinary pour la taille (retrbinary ("RETR SIZE")), cela a fonctionné comme prévu. Merci!
Mahmoud Abdelkader