diferença de tamanho de arquivo do servidor ftp versus tamanho real do arquivo

3

Estou me conectando a um servidor FTP para baixar alguns arquivos compactados em gzip e notei algo um pouco desconcertante sobre o comando SIZE e meu google-fu falhou.

ftp> size file0001.xml.gz
213 2524751

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

Os tamanhos dos arquivos são diferentes (2524751! = 2515727), como você pode ver. Por quê?

Li brevemente o Protocolo de transferência de arquivos RCF0959 (FTP) e não há menção ao comando SIZE, que mais tarde descobri ser uma adição não padrão ao protocolo.

Aqui está o bit sobre tamanho de bytes, por conveniência, do 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.

O que estou perdendo aqui?

Obrigado!

Mahmoud

Mahmoud Abdelkader
fonte

Respostas:

7

Você mudou o ftp para o binarymodo? O ftp pode estar calculando o tamanho com as terminações de linha alteradas?

2524751/2515727 * 255 = 255.91469384396638

Portanto, parece que a cada 255 bytes no original ganhou 0,9 bytes extra - apenas o suficiente para a \nconversão de um arquivo compactado \r\n.

Douglas Leeder
fonte
Hey Douglas! Desculpe por retornar tão tarde. O problema era que esse tipo estava realmente no formato ascii, eu estava usando-o através do ftplib do python. Quando forcei um retrbinário por tamanho (retrbinary ("RETR SIZE")), ele funcionou como esperado. Obrigado!
Mahmoud Abdelkader