Какую клиентскую библиотеку Java FTP мне следует использовать? [закрыто]


92

Поскольку на последний вопрос я не получил положительных ответов . Я попробую написать приложение загрузки Java FTP самостоятельно.

Мой вопрос: «Можете ли вы порекомендовать мне клиентскую библиотеку Java FTP?»

Я хочу, чтобы это было:

  • стабильный
  • способен работать в пассивном и активном режимах
  • может предоставить информацию о ходе загрузки
  • бросать улавливаемые исключения, если что-то пошло не так (особенно если загрузка не удалась)
  • дешево / бесплатно, желательно с открытым исходным кодом

Я нашел этот обзор некоторых библиотек, но поскольку эта статья датируется 2003 годом, возможно, произошли какие-то новые разработки :)

Ответы:


56

Ознакомьтесь с Apache commons-net , который содержит утилиты FTP. Я не уверен, что он отвечает всем вашим требованиям, но это определенно бесплатно!


Этот информационный бит добавлен сюда, хотя он не имеет отношения к вопросу - просто хотел его где-то разместить. commons-net FtpClient по-прежнему не поддерживает IPv6 (RFC 2438) в последней версии 2.0 от 2008 года. Предполагается, что она будет включена в 2.1. Они не выпускают очень часто ...
Мориц Оба

2
@Moritz Both: это было окончательно исправлено в 2010 году. См. Issues.apache.org/jira/browse/NET-288 .
sleske

Я пытаюсь использовать предложенную библиотеку FTP, но возникают проблемы с сетевым прокси, есть предложения?
Ашиш Шарма

2
Скорость у этой библиотеки довольно низкая, требуется более быстрая библиотека.
Tommy Ng

@TommyNg Я исправил замедление, удалив квоту с FTP-сервера и увеличив размер буфера. Может, это поможет тебе.
gouessej

17

ftp4j - лучший вариант как по характеристикам, так и по лицензии:

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



9
Я не понимаю, почему бы не загрузить библиотеку в Maven Central ... Это религиозное или политическое решение?
gavenkoa

2
@gavenkoa, насколько я понимаю, чтобы загрузить свой проект в maven central, вы почти вынуждены использовать maven в качестве инструмента сборки. Если кто-то строит с помощью ant (как ftp4j), это не так просто, и я предполагаю, что автора недостаточно заботят, чтобы это произошло.
Palo Ebermann 08

1
Сбор зависимостей с репозиториями Maven обычен для Java (как pip для Python, Gems для Ruby). Даже в Ant есть Плющ. У разработчиков может не быть времени или денег для загрузки, кто знает?
gavenkoa 09

@ PaŭloEbermann Нет, можно использовать Ant в качестве инструмента сборки и загрузить библиотеку на Maven Central, это то, что мы делаем для JogAmp (JOGL, JOAL, JOCL). Более того, вы можете иметь свой собственный репозиторий Maven вместо злоупотребления централизацией, чтобы уважать некоторые политические соображения, которые я полностью понимаю.
gouessej

6

Да, edtFTPj от EnterpriseDT является стабильным (впервые выпущен в 2000 году), имеет все функции, которые могут вам понадобиться, а также имеет открытый исходный код.

Он используется в ряде проектов с открытым исходным кодом (а также во многих коммерческих проектах) и признан одной из самых быстрых клиентских библиотек .

Как отметил другой плакат, если вы действительно хотите перейти на SFTP и / или FTPS, это простой путь обновления с очень небольшим количеством изменений кода.


Мне не удалось заставить ftp4j работать из-за исключения IllegalReply. Этот сработал очень хорошо.
anujin

Статья, которую вы упомянули как доказательство скорости edtFTPj, датируется 2006 годом. Она действительно устарела
ftrujillo

2
Этот пакет не бесплатный (и очень дорогой), если вам понадобятся «профессиональные» функции, такие как подключение через прокси ...
Эрик Николас


4

Commons-net обязательно. :) В наши дни большинство проектов с открытым исходным кодом используют его.

yc


1

Я успешно использовал FTP- библиотеку Enterprise DT , которая бесплатна и имеет открытый исходный код. Я не могу сравнивать его с другими библиотеками (например, с библиотекой Apache Commons Net), поскольку я их не использовал. Он обеспечивает простой способ обновления до SFTP (через SSH) и FTPS (через SSL), хотя это платный коммерческий продукт.


1

Общественные сети Apache получают обновления чаще, в то время как библиотека Enterprise DT, кажется, обновляется еще чаще.


0

Я скачивал видео файлы. FTPClient от Apache возился, скачал видео довольно быстро. но когда я попытался воспроизвести видео, оно потеряло куски в середине видео. ftp4j загрузит все видео без потерь.

ftp4j ftw


0

У вас также есть эта статья 2006 года, в которой перечислены различные параметры для FTP-клиентов.

commons-net хорош, но FTP-GO может предоставить вам некоторые из более продвинутых функций, которые вы ищете.

каги Ftp-Go


Первая ссылка мертва
gouessej

1
@gouessej Первая ссылка не мертвая. Второй был. Я восстановил ссылку "FTP-GO".
VonC

1
Вы правы, спасибо. Вы должны заплатить 750 долларов США, чтобы получить исходный код этого API: s
gouessej
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.