Pergunta

Estou tentando implementar a compactação do Modo Z para FTP usando C# para um cliente FTP que escrevi. Meu entendimento é que o modo Z usa a mesma compressão que o Zlib. Não posso obter o Zlib.net do Componentace para o trabalho. Ele invade a última parte do arquivo após o upload para um servidor Filezilla FTP. Onde estão as especificações para o modo z? Alguém mais teve problemas com o Zlib.net? A deflate na estrutura do .NET também não é compatível com o modo Z.

Foi útil?

Solução

Eu não acho que o modo compactado FTP tenha chegado a uma RFC ainda. Existe um (expirado)Rascunho da Internet De setembro de 2005.

Você pode tentar enviar um e -mail para um dos autores para o status atual se você ficar realmente preso (consulte a Seção 7, Endereços dos autores).

RFCs 1950 e 1951 (Zlib e esvaziar respectivamente) também podem ser úteis para você para depuração de baixo nível. Não entendo completamente o relacionamento desses dois RFCs, no entanto, a Seção 3.3.1 dos estados do rascunho da Internet acima:

Todos os processos de FTP que suportam o modo de transmissão deflatam deve suportar o formato de dados comprimido do ZLIB especificado na RFC 1950 [5].

Portanto, certamente parece que você está usando o componente C# correto.

Seria bom confirmar onde está ocorrendo o truncamento: você tem certeza de que está na biblioteca de compressão? Você pode despejar os dados compactados antes de fazer o upload? Você pode assistir os bytes passarem por cima do fio? Você pode rastrear o lado do servidor para ver se ele recebe o arquivo inteiro (mas depois trunca)?

Outras dicas

Se você deseja uma biblioteca FTP barata que suporta o modo Z, tente edtftpnet/express. Você pode até comprar o código -fonte se quiser dar uma olhada em como implementamos a compactação com o zlib.net.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top