Saltar al contenido principal

Cliente FTP

Cargar y descargar archivos, gestionar carpetas remotas.

Introducción​

Netuno tiene integrado en su framework low-code un cliente FTP, que permite conectar con servidores, enviar y recibir archivos, modificar carpetas, entre otras operaciones remotas.

Admite múltiples conexiones simultáneas, e incluso FTPS.

Esto gracias a la implementación Java y de código abierto Apache Commons Net, que permite a Netuno proporcionar estas funcionalidades en todos los lenguajes de script mediante el recurso _ftp.

Más información sobre el recurso FTP de Netuno.

Configuración​

El primer paso será configurar los datos de acceso al FTP que Netuno utilizará para realizar la conexión.

Navegue dentro de la aplicación que está desarrollando hasta el archivo de configuración de entorno. En este ejemplo, utilizaremos el archivo de entorno de desarrollo ubicado en:

  • config/_development.json

Compruebe si ya contiene las configuraciones para el FTP; si aún no existen, entonces al final del archivo de configuración (en formato JSON) añada los parámetros de configuración del FTP:

config/_development.json
{
...
"ftp": {
"default": {
"enabled": true,
"host": "mi.servidor.net",
"port": 21,
"username": "temp",
"password": "$eCr37"
}
},
...
}

Después de guardar los cambios, basta con reiniciar Netuno para asumir los cambios de la configuración. Siendo estas las configuraciones predeterminadas para la conexión, como indica el nombre default.

Puede añadir más configuraciones de conexión FTP, pero solo una podrá definirse como predeterminada.

Para añadir más configuraciones de conexión FTP, basta con repetir el bloque de configuración predeterminado y cambiar el nombre default por otro nombre a su elección; vea el ejemplo:

config/_development.json
{
...
"ftp": {
"default": {
"enabled": true,
"host": "mi.servidor.net",
"port": 22,
"username": "temp",
"password": "$eCr37"
},
"otro": {
"enabled": true,
"host": "mi.otro-servidor.net",
"port": 22,
"username": "temp",
"password": "$eCr37"
}
},
...
}

Una configuración similar al ejemplo anterior permitirá utilizar la cuenta default cuando se llame de la siguiente forma en el código:

const ftp = _ftp.init()

Y para utilizar la configuración otro, basta con añadir el nombre de la configuración como parámetro a la función _ftp.init() de la siguiente forma:

const ftpOtro = _ftp.init("otro")

Si no se añade un nombre de configuración como parámetro, se utilizará siempre la cuenta default.

Conexión​

Antes de hacer cualquier cosa es necesario iniciar la conexión FTP:

ftp.connect()

Carpeta de trabajo​

Al realizar operaciones en FTP es necesario definir qué carpeta se utilizará.

Mediante la definición de la carpeta de trabajo podremos realizar las distintas manipulaciones a partir de esta carpeta base.

Para cambiar la carpeta de trabajo:

ftp.changeWorkingDirectory("mi/carpeta/base")

Ahora cualquier operación se realizará en esta carpeta o a partir de ella.

Crear y eliminar carpetas​

Al crear una carpeta basta con indicar la ruta de esta carpeta:

ftp.createDirectory("carpeta-temporal")
ftp.createDirectory("carpeta-temporal/subcarpeta")

Para eliminar o borrar carpetas:

ftp.deleteDirectory("carpeta-temporal/subcarpeta")
ftp.deleteDirectory("carpeta-temporal")

Renombrar​

Es posible renombrar archivos o carpetas; se pasa la ruta antigua y a continuación la nueva ruta:

ftp.rename("nombre-antiguo", "nombre-nuevo")

Enviar archivos​

Para subir un archivo de texto:

ftp.uploadText("mi-archivo.txt", "¡Hola FTP! Este es mi contenido...")

Recibir archivos​

Para obtener un archivo de texto:

const contenidoArchivo = ftp.downloadText("mi-archivo.txt")
_out.println(contenidoArchivo)

Listar elementos en la carpeta​

Lista todo el contenido de una carpeta:

for (const i of ftp.list("ruta/carpeta")) {
if (i.isDirectory()) {
_out.print("Carpeta: ")
} else if (i.isFile()) {
_out.print("Archivo: ")
} else {
_out.print("Otro: ")
}
_out.println(i.getName())
_out.println("<br/>")
}

Devuelve una lista de objetos del tipo FTPFile.