Qual biblioteca cliente de FTP Java devo usar? [fechadas]

91

Já que não recebi respostas positivas para o meu último pergunta. Vou tentar escrever um miniaplicativo de upload de FTP Java sozinho.

Minha pergunta é: "Você pode recomendar uma biblioteca cliente FTP Java para eu usar?"

Eu quero que seja:

  • estábulo
  • capaz de lidar com os modos passivos e ativos
  • capaz de fornecer informações sobre o andamento do upload
  • lançar exceções capturáveis ​​se algo der errado (especialmente quando um upload não é bem-sucedido)
  • barato / gratuito para usar, de preferência de código aberto

Encontrei esta visão geral de algumas bibliotecas, mas como este artigo é de 2003, talvez alguns novos desenvolvimentos tenham acontecido :)

Tader
fonte

Respostas:

56

Verifique o Apache commons-net , que contém utilitários de FTP. Pensando bem, não tenho certeza se ele atende a todos os seus requisitos, mas certamente é grátis!

Leigh
fonte
Este bit de informação é adicionado aqui, embora não esteja relacionado à pergunta - apenas queria colocá-lo em algum lugar. O commons-net FtpClient ainda carece de suporte IPv6 (RFC 2438) na versão 2.0 mais recente datada de 2008. 2.1 é suposto incluí-lo no entanto. Eles não lançam com muita frequência ...
Moritz Ambos,
2
@Moritz Ambos: Isso foi finalmente corrigido em 2010. Consulte issues.apache.org/jira/browse/NET-288 .
sleske
Estou tentando usar a biblioteca FTP sugerida, mas ela está apresentando problemas atrás de um proxy de rede, alguma sugestão?
Ashish Sharma
2
A velocidade é bastante lenta com esta biblioteca, procurando uma biblioteca mais rápida.
Tommy Ng
@TommyNg Corrigi a lentidão removendo uma cota do servidor FTP e aumentando o tamanho do buffer. Talvez possa ajudá-lo.
gouessej
17

ftp4j é o melhor, tanto para recursos quanto para licença:

http://www.sauronsoftware.it/projects/ftp4j/

Cocco
fonte
5
A desvantagem é que não é em Maven Central
yegor256
9
Não entendo porque não carregar a biblioteca no Maven Central ... Isso é uma decisão religiosa ou política?
gavenkoa
2
@gavenkoa pelo que entendi, para carregar seu projeto no maven central você é quase forçado a usar o maven como sua ferramenta de compilação. Se alguém está construindo com formiga (como ftp4j é), não é tão fácil, e acho que o autor não se importa o suficiente para que isso aconteça.
Paŭlo Ebermann
1
Coletar dependências com repositórios Maven são comuns para Java (como pip para Python, Gems para Ruby). Mesmo em Ant existem Ivy. Os desenvolvedores podem não ter tempo ou dinheiro para fazer upload do trabalho, quem sabe?
gavenkoa
@ PaŭloEbermann Não, é possível usar o Ant como ferramenta de construção e fazer o upload da biblioteca no Maven Central, isso é o que fazemos para JogAmp (JOGL, JOAL, JOCL). Além disso, você pode ter seu próprio repositório Maven em vez de abusar da centralização, a fim de respeitar algumas considerações políticas que eu entendo perfeitamente.
gouessej
6

Sim, o edtFTPj da EnterpriseDT é estável (lançado pela primeira vez em 2000), tem todos os recursos de que você pode precisar e também é open source.

É usado em vários projetos de código aberto (bem como em muitos projetos comerciais) e é reconhecida como uma das bibliotecas cliente mais rápidas do mercado .

Como outro autor observou, se você deseja atualizar para SFTP e / ou FTPS, é um caminho de atualização simples com muito poucas mudanças de código necessárias.

Bruce Blackshaw
fonte
Não consegui fazer o ftp4j funcionar devido a alguma exceção IllegalReply. Este funcionou muito bem.
anujin
O artigo que você menciona como prova da velocidade do edtFTPj data de 2006. Está realmente desatualizado
ftrujillo
2
Este pacote não é gratuito (e muito caro) assim que você precisar de recursos "profissionais", como conexão via proxy ...
Eric Nicolas
4

Commons-net com certeza. :) A maioria dos projetos de código aberto o usa atualmente.

yc

Yclian
fonte
1

Usei com sucesso a biblioteca Enterprise DT FTP , que é gratuita e de código aberto. Não posso compará-lo com outras bibliotecas (como a biblioteca Apache Commons Net), pois não as usei. Ele fornece um caminho de atualização simples para SFTP (por SSH) e FTPS (por SSL), embora seja um produto comercial pago.

Cozzman
fonte
1

O Apache commons-nets obtém atualizações com mais frequência recentemente, enquanto a biblioteca Enterprise DT parece ser atualizada com ainda mais frequência.

Gatorhall
fonte
0

Eu estava baixando arquivos de vídeo. O FTPClient do Apache se atrapalhou, baixou o vídeo razoavelmente rápido. mas quando tentei reproduzir o vídeo, ele perdeu partes do meio do vídeo. ftp4j baixaria o vídeo inteiro sem perda.

ftp4j ftw

nicolai.tesela
fonte
0

Você também tem este artigo de 2006 que lista diferentes opções para clientes FTP.

commons-net é bom, mas FTP-GO pode fornecer alguns dos recursos mais avançados que você está procurando.

kagi Ftp-Go

VonC
fonte
O primeiro link está morto
gouessej
1
@gouessej O primeiro link não está morto. O segundo foi. Eu restaurei o link "FTP-GO".
VonC de
1
Você está certo, obrigado. Você tem que pagar uma taxa de 750USD para obter o código-fonte desta API: s
gouessej