Subir fichero desde Java a servidor FTP / FTPS / SFTP

FTP / FTPS

Primero hemos de importar la librería commons-net-X.Y.jar que descargaremos desde la web de apache a nuestro proyecto. Si usamos eclipse, botón derecho en el proyecto -> Build Path -> Configure Build Path

En el fichero Java, añadimos los imports necesarios para poder enviar por FTP.

Creamos el código para subir el fichero

En caso de ser un servidor FTPS el codigo es exactamente igual, tan solo tendremos que cambiar la linea

FTPClient client = new FTPClient();

por la siguiente

FTPSClient client = new FTPSClient();

La linea marcada como importante en el codigo, tiene su sentido a la pregunta: FTPClient crea fichero con 0 bytes o FTPClient no sube correctamente el fichero independientemente si es un FTP o FTPS. En mi caso este era el problema. Se me creaba el fichero en el FTP, pero no subia el contenido. Además tardaba demasiado a la hora de ejecutar ftp.storeFile.

Fue añadir esta configuración y subía el fichero correctamente y además no tardaba nada.

SFTP

Para subir un fichero a un servidor SFTP, haremos uso de la librería JSCH (jsch-x.y.z.jar) que también deberemos importar en nuestro proyecto.

Descargaremos la class STFPUtils (para no reinventar la rueda) de https://dnhome.wordpress.com/2012/06/25/java-upload-file-to-sftp-server/ y la acomodaremos a nuestro gusto. En mi caso he cambiado el logger por el propio del framework que estoy utilizando.

En nuestro Java haremos uso del siguiente código para subir el fichero.

 

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.