Tôi nên sử dụng thư viện máy khách Java FTP nào? [đóng cửa]


91

Vì tôi không nhận được câu trả lời tích cực nào cho câu hỏi cuối cùng của mình . Tôi sẽ cố gắng tự viết một ứng dụng tải lên Java FTP.

Câu hỏi của tôi là: "Bạn có thể giới thiệu thư viện máy khách Java FTP để tôi sử dụng không?"

Tôi muốn trở thành:

  • ổn định
  • có thể xử lý các chế độ thụ động và chủ động
  • có thể cung cấp thông tin về tiến trình tải lên
  • ném các ngoại lệ có thể bắt được nếu có sự cố (đặc biệt là khi tải lên không thành công)
  • rẻ / miễn phí sử dụng, tốt nhất là mã nguồn mở

Tôi tìm thấy này cái nhìn tổng quan của một số thư viện, nhưng vì bài viết này là từ năm 2003, có thể một số diễn biến mới xảy ra :)

Câu trả lời:


56

Kiểm tra commons-net của Apache , có chứa các tiện ích FTP. Tôi không chắc nó có đáp ứng được tất cả các yêu cầu của bạn hay không, nhưng chắc chắn là nó miễn phí!


Bit thông tin này được thêm vào đây mặc dù nó không liên quan đến câu hỏi - chỉ muốn đặt nó ở đâu đó. commons-net FtpClient vẫn thiếu hỗ trợ IPv6 (RFC 2438) trong bản phát hành 2.0 mới nhất ngày 2008. Tuy nhiên, 2.1 được cho là sẽ bao gồm nó. Họ không phát hành thường xuyên ...
Moritz Cả hai

2
@Moritz Cả hai: Điều đó cuối cùng đã được khắc phục vào năm 2010. Xem issue.apache.org/jira/browse/NET-288 .
sleske

Tôi đang cố gắng sử dụng thư viện FTP được đề xuất nhưng nó gây ra sự cố đằng sau proxy mạng, bạn có đề xuất gì không?
Ashish Sharma

2
Tốc độ khá chậm với thư viện này, tìm kiếm một thư viện nhanh hơn.
Tommy Ng

@TommyNg Tôi đã sửa lỗi chậm bằng cách xóa hạn ngạch khỏi máy chủ FTP và bằng cách tăng kích thước bộ đệm. Có lẽ nó có thể giúp bạn.
gouessej

17

ftp4j là cái tốt nhất, cả về tính năng và giấy phép:

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


5
Nhược điểm là nó không ở Trung tâm Maven
yegor256

9
Tôi không hiểu tại sao không tải thư viện lên Maven Central ... Đây là quyết định tôn giáo hay chính trị?
gavenkoa

2
@gavenkoa như tôi hiểu, để tải dự án của bạn lên trung tâm maven, bạn gần như buộc phải sử dụng maven làm công cụ xây dựng của mình. Nếu một người đang xây dựng bằng kiến ​​(như ftp4j), không phải là dễ dàng như vậy, và tôi đoán tác giả không đủ quan tâm để làm cho điều này xảy ra.
Paŭlo Ebermann

1
Thu thập các phụ thuộc với kho lưu trữ Maven là điều bình thường đối với Java (như pip cho Python, Gems cho Ruby). Ngay cả trong Ant cũng có Ivy. Các nhà phát triển có thể không có thời gian hoặc tiền bạc để thực hiện công việc tải lên, ai biết được?
gavenkoa

@ PaŭloEbermann Không có thể sử dụng Ant làm công cụ xây dựng và tải lên thư viện trên Maven Central, đây là những gì chúng tôi làm cho JogAmp (JOGL, JOAL, JOCL). Hơn nữa, bạn có thể có kho lưu trữ Maven của riêng mình thay vì lạm dụng tập trung hóa để tôn trọng một số cân nhắc chính trị mà tôi hoàn toàn hiểu.
gouessej

6

Có, edtFTPj của EnterpriseDT ổn định (phát hành lần đầu vào năm 2000), có tất cả các tính năng bạn có thể cần và cũng là mã nguồn mở.

Nó được sử dụng trong một loạt các dự án mã nguồn mở (cũng như trong nhiều dự án thương mại) và được thừa nhận là một trong những thư viện khách hàng nhanh nhất .

Như một người đăng khác đã lưu ý, nếu bạn muốn nâng cấp lên SFTP và / hoặc FTPS, đó là một đường dẫn nâng cấp đơn giản với rất ít thay đổi mã cần thiết.


Tôi không thể nhận được tác phẩm ftp4j vì một số ngoại lệ IllegalReply. Cái này hoạt động khá tốt.
anujin

Các bài viết mà bạn đề cập đến như một bằng chứng về tốc độ của ngày edtFTPj từ năm 2006. Có thực sự lỗi thời
ftrujillo

2
Gói này không phải là miễn phí (và rất đắt tiền) ngay sau khi bạn cần "pro" tính năng, chẳng hạn như kết nối thông qua một proxy ...
Eric Nicolas


4

Commons-net chắc chắn. :) Hầu hết các dự án mã nguồn mở ngày nay đều sử dụng nó.

y C


1

Tôi đã sử dụng thành công thư viện Enterprise DT FTP , miễn phí và mã nguồn mở. Tôi không thể so sánh nó với các thư viện khác (như thư viện Apache Commons Net) vì tôi chưa sử dụng chúng. Nó cung cấp một đường dẫn nâng cấp đơn giản lên SFTP (qua SSH) và FTPS (qua SSL), mặc dù đó là một sản phẩm thương mại trả phí.


1

Apache commons-nets gần đây nhận được các bản cập nhật thường xuyên hơn, trong khi thư viện Enterprise DT dường như cập nhật thường xuyên hơn.


0

Tôi đang tải xuống các tệp video. FTPClient của Apache đã được tải xuống khá nhanh. nhưng khi tôi cố gắng phát lại video, nó bị mất các đoạn ở giữa video. ftp4j sẽ tải xuống toàn bộ video mà không bị mất mát.

ftp4j ftw


0

Bạn cũng có bài viết năm 2006 này liệt kê các tùy chọn khác nhau cho các máy khách FTP.

commons-net là tốt, nhưng FTP-GO có thể cung cấp cho bạn một số tính năng nâng cao hơn mà bạn đang tìm kiếm.

kagi Ftp-Go


Các liên kết đầu tiên đã chết
gouessej

1
@gouessej Liên kết đầu tiên chưa chết. Thứ hai là. Tôi đã khôi phục liên kết "FTP-GO".
VonC

1
Bạn nói đúng, cảm ơn. Bạn phải trả một khoản phí là 750USD để có được mã nguồn của API này: s
gouessej
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.