Welche Java-FTP-Client-Bibliothek soll ich verwenden? [geschlossen]


91

Da ich keine positiven Antworten auf meine letzte Frage erhalten habe. Ich werde versuchen, selbst ein Java-FTP-Upload-Applet zu schreiben.

Meine Frage lautet: "Können Sie mir eine Java-FTP-Clientbibliothek empfehlen?"

Ich möchte, dass es so ist:

  • stabil
  • in der Lage, passive und aktive Modi zu handhaben
  • Informationen zum Upload-Fortschritt bereitstellen
  • Wirf abfangbare Ausnahmen, wenn etwas schief gelaufen ist (insbesondere wenn ein Upload nicht erfolgreich ist).
  • billig / kostenlos zu verwenden, vorzugsweise Open Source

Ich habe diese Übersicht einiger Bibliotheken gefunden, aber da dieser Artikel aus dem Jahr 2003 stammt, sind möglicherweise einige neue Entwicklungen aufgetreten :)

Antworten:


56

Schauen Sie sich Apache commons-net an , das FTP-Dienstprogramme enthält. Ich bin mir nicht sicher, ob es alle Ihre Anforderungen erfüllt, aber es ist auf jeden Fall kostenlos!


Dieses Infobit wird hier hinzugefügt, obwohl es nichts mit der Frage zu tun hat - ich wollte es nur irgendwo platzieren. commons-net FtpClient hat in der neuesten Version 2.0 vom 2008 noch keine IPv6-Unterstützung (RFC 2438). 2.1 soll diese jedoch enthalten. Sie veröffentlichen nicht sehr oft ...
Moritz Beide

2
@Moritz Both: Das wurde 2010 endgültig behoben. Siehe Issues.apache.org/jira/browse/NET-288 .
Sleske

Ich versuche, die vorgeschlagene FTP-Bibliothek zu verwenden, aber es gibt Probleme hinter einem Netzwerk-Proxy. Irgendwelche Vorschläge?
Ashish Sharma

2
Die Geschwindigkeit ist bei dieser Bibliothek ziemlich langsam, da nach einer schnelleren Bibliothek gesucht wird.
Tommy Ng

@TommyNg Ich habe die Verlangsamung behoben, indem ich ein Kontingent vom FTP-Server entfernt und die Puffergröße erhöht habe. Vielleicht kann es dir helfen.
Gouessej

17

ftp4j ist das beste, sowohl für Funktionen als auch für Lizenzen:

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


5
Der Nachteil ist, dass es nicht in Maven Central ist
yegor256

9
Ich verstehe nicht, warum ich keine Bibliothek nach Maven Central hochlade ... Ist das eine religiöse oder politische Entscheidung?
Gavenkoa

2
@gavenkoa Soweit ich weiß, sind Sie fast gezwungen, Maven als Build-Tool zu verwenden, um Ihr Projekt in Maven Central hochzuladen. Wenn man mit ant baut (wie ftp4j), ist das nicht so einfach, und ich denke, der Autor kümmert sich nicht genug darum, dies zu erreichen.
Paŭlo Ebermann

1
Das Sammeln von Abhängigkeiten mit Maven-Repositorys ist für Java üblich (als Pip für Python, Gems für Ruby). Sogar in Ant gibt es Ivy. Entwickler haben möglicherweise keine Zeit oder kein Geld, um Upload-Arbeiten durchzuführen. Wer weiß?
Gavenkoa

@ PaŭloEbermann Nein, es ist möglich, Ant als Build-Tool zu verwenden und die Bibliothek auf Maven Central hochzuladen. Dies tun wir für JogAmp (JOGL, JOAL, JOCL). Darüber hinaus können Sie Ihr eigenes Maven-Repository einrichten, anstatt die Zentralisierung zu missbrauchen, um einige politische Überlegungen zu berücksichtigen, die ich vollständig verstehe.
Gouessej

6

Ja, edtFTPj von EnterpriseDT ist stabil (erstmals im Jahr 2000 veröffentlicht), verfügt über alle Funktionen, die Sie möglicherweise benötigen, und ist auch Open Source.

Es wird in einer Reihe von Open Source-Projekten (sowie in vielen kommerziellen Projekten) verwendet und gilt als eine der schnellsten Client-Bibliotheken überhaupt .

Wie in einem anderen Poster erwähnt, handelt es sich bei einem Upgrade auf SFTP und / oder FTPS um einen einfachen Upgrade-Pfad, für den nur sehr wenige Codeänderungen erforderlich sind.


Ich konnte ftp4j wegen einer IllegalReply-Ausnahme nicht zum Laufen bringen. Dieser hat ziemlich gut funktioniert.
Anujin

Der Artikel, den Sie als Beweis für die Geschwindigkeit von edtFTPj erwähnen, stammt aus dem Jahr 2006. Ist wirklich veraltet
ftrujillo

2
Dieses Paket ist nicht kostenlos (und sehr teuer), sobald Sie "Pro" -Funktionen benötigen, wie z. B. die Verbindung über einen Proxy ...
Eric Nicolas


4

Commons-net sicher. :) Die meisten Open Source-Projekte verwenden es heutzutage.

yc


1

Ich habe erfolgreich die Enterprise DT FTP- Bibliothek verwendet, die kostenlos und Open Source ist. Ich kann es nicht mit anderen Bibliotheken (wie der Apache Commons Net-Bibliothek) vergleichen, da ich sie nicht verwendet habe. Es bietet einen einfachen Upgrade-Pfad zu SFTP (über SSH) und FTPS (über SSL), obwohl dies ein kostenpflichtiges kommerzielles Produkt ist.


1

Apache Commons-Netze werden in letzter Zeit häufiger aktualisiert, während die Enterprise DT-Bibliothek anscheinend noch häufiger aktualisiert wird.


0

Ich habe Videodateien heruntergeladen. Apaches FTPClient hat gefummelt und das Video relativ schnell heruntergeladen. Aber als ich versuchte, das Video wiederzugeben, verlor es Brocken aus der Mitte des Videos. ftp4j würde das gesamte Video ohne Verlust herunterladen.

ftp4j ftw


0

Sie haben auch diesen Artikel von 2006, in dem verschiedene Optionen für FTP-Clients aufgeführt sind.

commons-net ist gut, aber FTP-GO kann Ihnen einige der erweiterten Funktionen bieten, die Sie suchen.

kagi Ftp-Go


Der erste Link ist tot
Gouessej

1
@gouessej Der erste Link ist nicht tot. Der zweite war. Ich habe den Link "FTP-GO" wiederhergestellt.
VonC

1
Du hast recht, danke. Sie müssen eine Gebühr von 750 USD zahlen, um den Quellcode dieser API zu erhalten: s
gouessej
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.