ฉันควรใช้ไลบรารีไคลเอ็นต์ Java FTP ใด [ปิด]


92

เนื่องจากฉันไม่ได้รับคำตอบในเชิงบวกสำหรับคำถามสุดท้ายของฉัน ฉันจะพยายามเขียนแอพเพล็ตอัพโหลด Java FTP ด้วยตัวเอง

คำถามของฉันคือ "คุณสามารถแนะนำไลบรารีไคลเอ็นต์ Java FTP ให้ฉันใช้งานได้หรือไม่"

ฉันต้องการให้เป็น:

  • มั่นคง
  • สามารถจัดการกับโหมดพาสซีฟและแอคทีฟ
  • สามารถให้ข้อมูลความคืบหน้าในการอัปโหลด
  • โยนข้อยกเว้นที่จับได้หากมีสิ่งผิดปกติเกิดขึ้น (โดยเฉพาะเมื่อการอัปโหลดไม่สำเร็จ)
  • ราคาถูก / ใช้งานได้ฟรีโดยเฉพาะอย่างยิ่งโอเพ่นซอร์ส

ฉันพบนี้ ภาพรวมของห้องสมุดบางส่วน แต่เนื่องจากบทความนี้มาจากปี 2003 อาจจะมีการพัฒนาใหม่ได้เกิดขึ้น :)

คำตอบ:


56

ตรวจสอบ Apache commons-netซึ่งมียูทิลิตี้ FTP ฉันไม่แน่ใจว่าตรงตามความต้องการของคุณทั้งหมดหรือไม่ แต่ฟรีแน่นอน!


บิตข้อมูลนี้ถูกเพิ่มที่นี่แม้ว่าจะไม่เกี่ยวข้องกับคำถาม - เพียงแค่ต้องการวางไว้ที่ใดที่หนึ่ง commons-net FtpClient ยังขาดการรองรับ IPv6 (RFC 2438) ในเวอร์ชัน 2.0 ล่าสุดลงวันที่ 2008 2.1 ควรจะรวมไว้ด้วยอย่างไรก็ตาม พวกเขาไม่ปล่อยบ่อยนัก ...
Moritz ทั้ง

2
@Moritz ทั้งสอง: นั่นได้รับการแก้ไขในที่สุดในปี 2010 ดูissues.apache.org/jira/browse/NET-288
sleske

ฉันพยายามใช้ไลบรารี FTP ที่แนะนำ แต่มีปัญหาหลังพร็อกซีเครือข่ายมีข้อเสนอแนะหรือไม่
Ashish Sharma

2
ห้องสมุดนี้ใช้ความเร็วค่อนข้างช้ากำลังมองหาห้องสมุดที่เร็วกว่า
Tommy Ng

@TommyNg ฉันแก้ไขการชะลอตัวโดยการลบโควต้าออกจากเซิร์ฟเวอร์ FTP และเพิ่มขนาดบัฟเฟอร์ บางทีมันอาจช่วยคุณได้
gouessej

17

ftp4j เป็นสิ่งที่ดีที่สุดทั้งสำหรับคุณสมบัติและใบอนุญาต:

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


5
ข้อเสียคือไม่ได้อยู่ใน Maven Central
yegor256

9
ฉันไม่เข้าใจว่าทำไมไม่อัปโหลดห้องสมุดไปที่ Maven Central ... นี่เป็นการตัดสินใจทางศาสนาหรือทางการเมือง?
gavenkoa

2
@gavenkoa ตามที่ฉันเข้าใจในการอัปโหลดโครงการของคุณไปยัง maven central คุณเกือบจะถูกบังคับให้ใช้ maven เป็นเครื่องมือสร้างของคุณ ถ้าใครสร้างด้วยมด (ตามที่ ftp4j เป็น) ไม่ใช่เรื่องง่ายและฉันเดาว่าผู้เขียนไม่สนใจพอที่จะทำให้สิ่งนี้เกิดขึ้น
Paŭlo Ebermann

1
การรวบรวมการอ้างอิงกับที่เก็บ Maven เป็นเรื่องปกติสำหรับ Java (เป็น pip สำหรับ Python, Gems for Ruby) แม้แต่ใน Ant ก็ยังมี Ivy นักพัฒนาอาจไม่มีเวลาหรือเงินในการอัปโหลดใครจะรู้?
gavenkoa

@ PaŭloEbermannไม่สามารถใช้ Ant เป็นเครื่องมือสร้างและอัปโหลดไลบรารีบน Maven Central นี่คือสิ่งที่เราทำเพื่อ JogAmp (JOGL, JOAL, JOCL) นอกจากนี้คุณสามารถมีที่เก็บ Maven ของคุณเองแทนที่จะใช้การรวมศูนย์ในทางที่ผิดเพื่อเคารพการพิจารณาทางการเมืองบางอย่างที่ฉันเข้าใจอย่างถ่องแท้
gouessej

6

ใช่edtFTPjของ EnterpriseDTมีความเสถียร (เปิดตัวครั้งแรกในปี 2000) มีคุณสมบัติทั้งหมดที่คุณอาจต้องการและเป็นโอเพ่นซอร์สด้วย

ใช้ในโครงการโอเพ่นซอร์สจำนวนมาก (เช่นเดียวกับในโครงการเชิงพาณิชย์หลายโครงการ) และได้รับการยอมรับว่าเป็นหนึ่งในไลบรารีไคลเอ็นต์ที่เร็วที่สุดหนึ่งในห้องสมุดลูกค้าที่เร็วที่สุดในรอบ

ตามที่ผู้โพสต์รายอื่นระบุไว้หากคุณต้องการอัปเกรดเป็น SFTP และ / หรือ FTPS เป็นเส้นทางการอัปเกรดที่เรียบง่ายและต้องการการเปลี่ยนแปลงโค้ดเพียงเล็กน้อย


ฉันไม่สามารถรับงาน ftp4j ได้เนื่องจากมีข้อยกเว้น IllegalReply บางอย่าง อันนี้ทำงานได้ดี
anujin

บทความที่คุณพูดถึงเป็นหลักฐานเกี่ยวกับความเร็วของ edtFTPj วันที่ตั้งแต่ปี 2549 ล้าสมัยไปแล้ว
ftrujillo

2
แพ็กเกจนี้ไม่ฟรี (และแพงมาก) ทันทีที่คุณต้องการคุณสมบัติ "โปร" เช่นการเชื่อมต่อผ่านพร็อกซี ...
Eric Nicolas


4

Commons-net แน่นอน :) โครงการโอเพ่นซอร์สส่วนใหญ่ใช้ในปัจจุบัน

yc


1

ฉันใช้ไลบรารีEnterprise DT FTP สำเร็จซึ่งเป็นโอเพ่นซอร์สฟรี ฉันไม่สามารถเปรียบเทียบกับไลบรารีอื่น ๆ ได้ (เช่นไลบรารี Apache Commons Net) เนื่องจากฉันไม่ได้ใช้ มีเส้นทางการอัปเกรดอย่างง่ายไปยัง SFTP (ผ่าน SSH) และ FTPS (ผ่าน SSL) แม้ว่าจะเป็นการชำระเงินสำหรับผลิตภัณฑ์เชิงพาณิชย์ก็ตาม


1

Apache commons-nets ได้รับการอัปเดตบ่อยขึ้นเมื่อเร็ว ๆ นี้ในขณะที่ไลบรารี Enterprise DT ดูเหมือนว่าจะอัปเดตบ่อยขึ้น


0

ฉันกำลังดาวน์โหลดไฟล์วิดีโอ FTPClient ของ Apache คลำพบมันดาวน์โหลดวิดีโอเร็วพอสมควร แต่เมื่อฉันพยายามเล่นวิดีโอกลับหายไปจากช่วงกลางของวิดีโอ ftp4j จะดาวน์โหลดวิดีโอทั้งหมดโดยไม่มีการสูญเสีย

ftp4j ftw


0

นอกจากนี้คุณยังมีบทความปี 2006ซึ่งแสดงรายการตัวเลือกต่างๆสำหรับไคลเอนต์ FTP

commons-net เป็นสิ่งที่ดี แต่FTP-GOสามารถให้คุณสมบัติขั้นสูงบางอย่างที่คุณกำลังมองหาได้

คากิ Ftp-Go


ลิงค์แรกตาย
gouessej

1
@gouessej ลิงค์แรกยังไม่ตาย อย่างที่สองคือ ฉันกู้คืนลิงก์ "FTP-GO" แล้ว
VonC

1
คุณพูดถูกขอบคุณ คุณต้องจ่ายค่าธรรมเนียม 750USD เพื่อรับซอร์สโค้ดของ API นี้: s
gouessej
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.