FTPサーバーのファイルサイズの違いと実際のファイルサイズ


3

FTPサーバーに接続してgzip圧縮されたファイルをダウンロードしているときに、SIZEコマンドについて少し不安に感じ、google-fuで失敗しました。

ftp> size file0001.xml.gz
213 2524751

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

ご覧のとおり、ファイルサイズは異なります(2524751!= 2515727)。どうして?

RCF0959 FILE TRANSFER PROTOCOL(FTP)を簡単に読みましたが、SIZEコマンドについては言及していません。SIZEコマンドについては、プロトコルへの非標準の追加であることが後でわかりました。

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.

ここで何が欠けていますか?

ありがとう!

マフムード

回答:


7

ftpをbinaryモードに切り替えましたか?ftpは、行末が変更されたサイズを計算している可能性がありますか?

2524751/2515727 * 255 = 255.91469384396638

したがって、元の255バイトごとに0.9バイト余分に増えたように見えます-圧縮ファイル\n\r\n


やあダグラス!遅刻してごめんなさい。問題は、タイプが実際にascii形式であったことです。私はpythonのftplibを介して使用していました。サイズにretrbinaryを強制した場合(retrbinary( "RETR SIZE"))、期待どおりに機能しました。ありがとう!
マフムードアブデルカーダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.