Quale libreria client FTP Java devo usare? [chiuso]


91

Dal momento che non ho ricevuto risposte positive alla mia ultima domanda. Proverò a scrivere io stesso un'applet di caricamento FTP Java.

La mia domanda è: "Potete consigliarmi una libreria client FTP Java da utilizzare?"

Voglio che sia:

  • stabile
  • in grado di gestire modalità passive e attive
  • in grado di fornire informazioni sull'avanzamento del caricamento
  • lancia eccezioni catturabili se qualcosa è andato storto (specialmente quando un caricamento non ha successo)
  • economico / gratuito, preferibilmente open source

Ho trovato questa panoramica di alcune librerie, ma poiché questo articolo è del 2003, forse si sono verificati alcuni nuovi sviluppi :)

Risposte:


56

Dai un'occhiata a Apache commons-net , che contiene utilità FTP. Non sono sicuro che soddisfi tutte le tue esigenze, ma è sicuramente gratuito!


Questo bit di informazioni viene aggiunto qui sebbene non sia correlato alla domanda: volevo solo posizionarlo da qualche parte. commons-net FtpClient manca ancora del supporto IPv6 (RFC 2438) nell'ultima versione 2.0 del 2008. Si suppone che la 2.1 lo includa comunque. Non pubblicano molto spesso ...
Moritz Both

2
@ Moritz Both: Questo problema è stato finalmente risolto nel 2010. Vedi issues.apache.org/jira/browse/NET-288 .
sleske

Sto cercando di utilizzare la libreria FTP suggerita ma dà problemi dietro un proxy di rete, qualche suggerimento?
Ashish Sharma

2
La velocità è piuttosto lenta con questa libreria, alla ricerca di una libreria più veloce.
Tommy Ng

@TommyNg Ho risolto il rallentamento rimuovendo una quota dal server FTP e aumentando la dimensione del buffer. Forse ti può aiutare.
gouessej

17

ftp4j è il migliore, sia per caratteristiche che per licenza:

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


5
Lo svantaggio è che non è a Maven Central
yegor256

9
Non capisco perché non caricare la libreria su Maven Central ... È una decisione religiosa o politica?
Gavenkoa

2
@gavenkoa da quanto ho capito, per caricare il tuo progetto su Maven Central sei quasi costretto a usare Maven come strumento di costruzione. Se si sta costruendo con ant (come è ftp4j), non è così facile, e immagino che l'autore non si preoccupi abbastanza per farlo accadere.
Paŭlo Ebermann

1
La raccolta delle dipendenze con i repository Maven è normale per Java (come pip per Python, Gems per Ruby). Anche ad Ant ci sono Ivy. Gli sviluppatori potrebbero non avere tempo o denaro per eseguire il caricamento, chi lo sa?
gavenkoa

@ PaŭloEbermann No, è possibile utilizzare Ant come strumento di compilazione e caricare la libreria su Maven Central, questo è ciò che facciamo per JogAmp (JOGL, JOAL, JOCL). Inoltre, puoi avere il tuo repository Maven invece di abusare della centralizzazione per rispettare alcune considerazioni politiche che comprendo appieno.
gouessej

6

Sì, edtFTPj di EnterpriseDT è stabile (rilasciato per la prima volta nel 2000), ha tutte le funzionalità di cui potresti aver bisogno ed è anche open source.

È utilizzato in una serie di progetti open source (così come in molti progetti commerciali) ed è riconosciuta come una delle librerie client più veloci in circolazione .

Come ha notato un altro poster, se desideri eseguire l'aggiornamento a SFTP e / o FTPS, è un semplice percorso di aggiornamento con pochissime modifiche al codice richieste.


Non sono riuscito a far funzionare ftp4j a causa di alcune eccezioni IllegalReply. Questo ha funzionato abbastanza bene.
anujin

L'articolo che citi come prova della velocità di edtFTPj risale al 2006. È davvero obsoleto
ftrujillo

2
Questo pacchetto non è gratuito (e molto costoso) non appena hai bisogno di funzionalità "pro", come la connessione tramite un proxy ...
Eric Nicolas


4

Commons-net sicuramente. :) La maggior parte dei progetti open source lo usa oggigiorno.

yc


1

Ho utilizzato con successo la libreria FTP Enterprise DT , che è gratuita e open source. Non posso confrontarlo con altre librerie (come la libreria Apache Commons Net) poiché non le ho usate. Fornisce un semplice percorso di aggiornamento a SFTP (su SSH) e FTPS (su SSL), sebbene sia un prodotto commerciale a pagamento.


1

Le reti comuni di Apache ricevono aggiornamenti più frequentemente di recente, mentre la libreria DT Enterprise sembra aggiornarsi ancora più frequentemente.


0

Stavo scaricando file video. FTPClient di Apache ha armeggiato, ha scaricato il video abbastanza velocemente. ma quando ho provato a riprodurre il video, ha perso parti al centro del video. ftp4j scarica l'intero video senza alcuna perdita.

ftp4j ftw


0

Hai anche questo articolo del 2006 che elenca diverse opzioni per i client FTP.

commons-net è buono, ma FTP-GO può darti alcune delle funzionalità più avanzate che stai cercando.

kagi Ftp-Go


Il primo collegamento è morto
gouessej

1
@gouessej Il primo collegamento non è morto. Il secondo è stato. Ho ripristinato il collegamento "FTP-GO".
VonC

1
Hai ragione, grazie. Devi pagare una commissione di 750 USD per ottenere il codice sorgente di questa API: s
gouessej
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.