私が作成した FTP クライアントに C# を使用して、FTP に MODE Z 圧縮を実装しようとしています。私の理解では、MODE Z は zlib と同じ圧縮を使用しています。componentace から zlib.net を取得できません。FileZilla FTP サーバーにアップロードした後、ファイルの最後の部分をハッキングします。MODE Zのスペックは?他の誰かが zlib.net で問題を抱えていますか? .NET Framework の deflate も MODE Z と互換性がありません。
2 に答える
FTP 圧縮モードはまだ RFC に達していないと思います。2005 年 9 月の (期限切れの) Internet Draftがあります。
本当に行き詰った場合は、著者の 1 人に現在の状況をメールで問い合わせてみてください (セクション 7.著者のアドレスを参照してください)。
RFC 1950および1951 (それぞれ zlib および deflate) も、低レベルのデバッグに役立つ場合があります。これら 2 つの RFC の関係を完全には理解していませんが、上記のインターネット ドラフトのセクション 3.3.1 には次のように記載されています。
deflate 送信モードをサポートするすべての FTP プロセスは、RFC 1950 [5] で指定された ZLIB 圧縮データ形式をサポートする必要があります。
したがって、正しい C# コンポーネントを使用しているように思えます。
切り捨てが行われている場所を確認することをお勧めします。圧縮ライブラリにあると確信していますか? アップロードする前に圧縮データをダンプできますか? バイトがネットワーク上を移動する様子を確認できますか? サーバー側をトレースして、ファイル全体を受信したかどうかを確認できますか (ただし、ファイルは切り捨てられます)。
MODE Z をサポートする安価な FTP ライブラリが必要な場合は、edtFTPnet/Expressを試してください。zlib.net で圧縮をどのように実装したかを確認したい場合は、ソース コードを購入することもできます。