2008-11-17 21 views
82

Como no recibí respuestas positivas a mi pregunta last. Intentaré escribir un applet de carga de Java FTP yo mismo.¿Qué biblioteca de cliente FTP de Java debería usar?

Mi pregunta es: "¿Me pueden recomendar una biblioteca de cliente FTP de Java para usar?"

que quieren que sea:

  • modos pasivo y activo capaz de manejar estables
  • capaz de proporcionar información de progreso de carga
  • arrojar excepciones capturable si algo salió mal (especialmente cuando una la carga no tiene éxito)
  • barato/gratis, preferiblemente de código abierto

He encontrado thisoverview de algunas bibliotecas, pero ya que este artículo es de 2003, tal vez han ocurrido algunos nuevos desarrollos :)

Respuesta

54

Salida Apache commons-net, que contiene utilidades FTP. Fuera de mi cabeza, no estoy seguro si cumple con todos tus requisitos, ¡pero sin duda es gratis!

+0

Este bit de información se agrega aquí aunque no está relacionado con la pregunta, solo quería colocarlo en algún lugar. FtpClient de commons-net aún carece de compatibilidad con IPv6 (RFC 2438) en la última versión 2.0 con fecha de 2008. Se supone que 2.1 debe incluirlo. No lanzan muy a menudo ... –

+2

@Moritz Both: Eso finalmente se solucionó en 2010. Consulte https://issues.apache.org/jira/browse/NET-288. – sleske

+0

Estoy tratando de usar la biblioteca FTP sugerida pero está dando problemas detrás de un proxy de red, ¿alguna sugerencia? –

1

También tiene este 2006 article que enumera las diferentes opciones para clientes FTP.

commons-net es bueno, pero FTP-GO puede darle algunas de las funciones más avanzadas que está buscando.

kagi Ftp-Go

+0

El primer enlace está muerto – gouessej

+1

@gouessej El primer enlace no está muerto. El segundo fue Restaure el enlace "FTP-GO". – VonC

+1

Tienes razón, gracias. Tienes que pagar una tarifa de 750 USD para obtener el código fuente de esta API: s – gouessej

4

Commons-net con seguridad. :) La mayoría de los proyectos de código abierto lo usan en estos días.

YC

1

he utilizado con éxito la biblioteca Enterprise DT FTP, que es gratuito y de código abierto. No puedo compararlo con otras bibliotecas (como la biblioteca Apache Commons Net) ya que no las he usado. Proporciona una ruta de actualización simple a SFTP (a través de SSH) y FTPS (a través de SSL), aunque es un producto comercial de pago.

1

Las redes comunes de Apache reciben actualizaciones con mayor frecuencia recientemente, mientras que la biblioteca Enterprise DT parece actualizar aún más frecuentemente.

7

Sí, el edtFTPj de EnterpriseDT es estable (se lanzó por primera vez en 2000), tiene todas las funciones que pueda necesitar y también es de código abierto.

Se utiliza en un conjunto de proyectos de código abierto (así como en muchos proyectos comerciales), y se reconoce que es one of the fastest client libraries around.

Como se menciona en otro cartel, si desea actualizar a SFTP y/o FTPS, es una ruta de actualización simple con muy pocos cambios de código necesarios.

+0

No pude conseguir que ftp4j funcione debido a alguna excepción IllegalReply. Este funcionó bastante bien. – anujin

+0

El artículo que mencionas como una prueba de la velocidad de edtFTPj data de 2006. Está realmente obsoleto – ftrujillo

+1

Este paquete no es gratuito (y muy caro) tan pronto como necesites funciones "pro", como la conexión a través de un proxy. –

16

ftp4j es la mejor, tanto para las características y la licencia:

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

+5

Lo malo es que no está en Maven Central – yegor256

+7

No entiendo por qué no subir la biblioteca a Maven Central ... ¿Es esta decisión religiosa o política? – gavenkoa

+2

@gavenkoa según tengo entendido, para cargar su proyecto a maven central, casi se verá obligado a utilizar maven como herramienta de construcción. Si uno está construyendo con ant (como ftp4j es), no es tan fácil, y creo que al autor no le importa lo suficiente como para que esto suceda. –

0

descargaba archivos de vídeo. El FTPClient de Apache perdió el control, descargó el video razonablemente rápido. pero cuando traté de reproducir el video, perdió fragmentos del medio del video. ftp4j descargaría el video completo sin pérdida.

ftp4j ftw

Cuestiones relacionadas