Jakiej biblioteki klienta FTP Java mam użyć? [Zamknięte]


92

Ponieważ nie otrzymałem pozytywnych odpowiedzi na moje ostatnie pytanie. Spróbuję sam napisać aplet do przesyłania plików Java do FTP.

Moje pytanie brzmi: „Czy możesz polecić mi bibliotekę klienta FTP Java do użycia?”

Chcę żeby było:

  • stabilny
  • zdolny do obsługi trybów pasywnych i aktywnych
  • w stanie dostarczyć informacje o postępie przesyłania
  • wyrzuć możliwe do złapania wyjątki, jeśli coś poszło nie tak (szczególnie gdy przesyłanie się nie powiedzie)
  • tani / darmowy w użyciu, najlepiej open source

Znalazłem ten przegląd niektórych bibliotek, ale ponieważ ten artykuł pochodzi z 2003 roku, być może nastąpiły pewne nowe wydarzenia :)

Odpowiedzi:


56

Sprawdź Commons-net Apache , który zawiera narzędzia FTP. Nie jestem pewien, czy spełnia wszystkie Twoje wymagania, ale z pewnością jest bezpłatny!


Ten bit informacyjny jest tutaj dodany, chociaż nie ma związku z pytaniem - po prostu chciałem go gdzieś umieścić. Commons-net FtpClient nadal nie obsługuje IPv6 (RFC 2438) w najnowszym wydaniu 2.0 z 2008 roku. 2.1 ma to jednak uwzględniać. Nie wydają zbyt często ...
Moritz Oba

2
@Moritz Both: To zostało ostatecznie naprawione w 2010 roku. Zobacz Issues.apache.org/jira/browse/NET-288 .
sleske

Próbuję użyć sugerowanej biblioteki FTP, ale daje to problemy za sieciowym serwerem proxy, jakieś sugestie?
Ashish Sharma,

2
Szybkość jest raczej niska w tej bibliotece, szukając szybszej biblioteki.
Tommy Ng

@TommyNg Naprawiłem spowolnienie, usuwając limit z serwera FTP i zwiększając rozmiar bufora. Może to ci pomoże.
gouessej

17

ftp4j jest najlepszy, zarówno pod względem funkcji, jak i licencji:

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


5
Minusem jest to, że nie ma go w Maven Central
yegor256

9
Nie rozumiem, dlaczego nie przesłać biblioteki do Maven Central… Czy to decyzja religijna czy polityczna?
gavenkoa,

2
@gavenkoa, jak rozumiem, aby przesłać swój projekt do Maven Central, prawie musisz użyć maven jako narzędzia do budowania. Jeśli buduje się za pomocą ant (tak jak ftp4j), nie jest to takie łatwe i myślę, że autorowi nie zależy na tym, aby tak się stało.
Paŭlo Ebermann

1
Zbieranie zależności z repozytoriami Maven jest typowe dla Javy (jako pip dla Pythona, Gems dla Ruby). Nawet w Ant jest Ivy. Programiści mogą nie mieć czasu ani pieniędzy na przesyłanie pracy, kto wie?
gavenkoa

@ PaŭloEbermann Nie, nie jest możliwe użycie Anta jako narzędzia do budowania i załadowanie biblioteki na Maven Central, to właśnie robimy dla JogAmp (JOGL, JOAL, JOCL). Co więcej, możesz mieć własne repozytorium Maven zamiast nadużywania centralizacji, aby uszanować pewne względy polityczne, które w pełni rozumiem.
gouessej

6

Tak, edtFTPj EnterpriseDT jest stabilny (po raz pierwszy wydany w 2000 roku), ma wszystkie funkcje, których możesz potrzebować, a także jest open source.

Jest używany w wielu projektach open source (a także w wielu projektach komercyjnych) i jest uznawany za jedną z najszybszych bibliotek klienckich .

Jak zauważył inny autor, jeśli chcesz zaktualizować do SFTP i / lub FTPS, jest to prosta ścieżka aktualizacji wymagająca bardzo niewielu zmian w kodzie.


Nie mogłem uruchomić ftp4j z powodu wyjątku IllegalReply. Ten działał całkiem nieźle.
anujin,

Artykuł, o którym wspominasz jako dowód szybkości edtFTPj, pochodzi z 2006 roku. Jest naprawdę nieaktualny
ftrujillo

2
Ten pakiet nie jest darmowy (i bardzo drogi), gdy tylko potrzebujesz funkcji „pro”, takich jak połączenie przez proxy…
Eric Nicolas


4

Na pewno Commons-net. :) Większość projektów open source używa go obecnie.

yc


1

Z powodzeniem korzystałem z biblioteki Enterprise DT FTP , która jest bezpłatna i otwarta. Nie mogę go porównać z innymi bibliotekami (takimi jak biblioteka Apache Commons Net), ponieważ ich nie używałem. Zapewnia prostą ścieżkę aktualizacji do SFTP (przez SSH) i FTPS (przez SSL), chociaż jest to płatny produkt komercyjny.


1

Sieci społecznościowe Apache są ostatnio częściej aktualizowane, podczas gdy biblioteka Enterprise DT wydaje się aktualizować jeszcze częściej.


0

Pobierałem pliki wideo. Klient FTP Apache'a grzebał, pobrał wideo dość szybko. ale kiedy próbowałem odtworzyć wideo, straciłem fragmenty w środku wideo. ftp4j pobierze cały film bez żadnych strat.

ftp4j ftw


0

Masz również ten artykuł z 2006 roku, w którym wymieniono różne opcje dotyczące klientów FTP.

commons-net jest dobre, ale FTP-GO może dać ci niektóre z bardziej zaawansowanych funkcji, których szukasz.

kagi Ftp-Go


Pierwszy link jest martwy
gouessej

1
@gouessej Pierwszy link nie jest martwy. Drugi był. Przywróciłem łącze „FTP-GO”.
VonC

1
Masz rację, dzięki. Za pobranie kodu źródłowego tego API trzeba zapłacić 750 USD: s
gouessej
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.