Реализация сжатия Z в MODE для FTP с использованием C # - PullRequest
1 голос
/ 04 апреля 2009

Я пытаюсь реализовать сжатие MODE Z для FTP, используя C # для написанного мной клиента FTP. Насколько я понимаю, MODE Z использует то же сжатие, что и zlib. Я не могу заставить zlib.net работать с компонентами. Он вырубает последнюю часть файла после загрузки на FTP-сервер FileZilla. Где спецификации для режима Z? У кого-нибудь еще были проблемы с zlib.net? Сжатие в .NET Framework также не совместимо с MODE Z.

Ответы [ 2 ]

2 голосов
/ 04 апреля 2009

Я не думаю, что сжатый режим FTP дошел до RFC. Существует (истек) Интернет-проект с сентября 2005 г.

Вы можете попробовать отправить электронное письмо одному из авторов для получения текущего статуса, если вы действительно застряли (см. Раздел 7, Адреса авторов ).

RFC 1950 и 1951 (соответственно zlib и deflate) также могут быть полезны для отладки низкого уровня. Я не совсем понимаю взаимосвязь этих двух RFC, однако в разделе 3.3.1 вышеуказанного интернет-проекта говорится:

НЕОБХОДИМО, чтобы все процессы FTP, которые поддерживают режим передачи с дефляцией поддерживать формат сжатых данных ZLIB, указанный в RFC 1950 [5].

так что, похоже, вы используете правильный компонент C #.

Было бы хорошо подтвердить, где происходит усечение: вы уверены, что оно находится в библиотеке сжатия? Можете ли вы сбросить сжатые данные перед загрузкой? Можете ли вы смотреть, как байты проходят по проводам? Можете ли вы отследить серверную часть, чтобы увидеть, получает ли он весь файл (но затем обрезает его)?

0 голосов
/ 19 мая 2009

Если вам нужна недорогая FTP-библиотека с поддержкой MODE Z, попробуйте edtFTPnet / Express . Вы даже можете приобрести исходный код, если хотите посмотреть, как мы реализовали сжатие с помощью zlib.net.

...