Skip to content

Archivos y SFTP

set_return_file()

Establece un archivo para ser descargado por el usuario.

lua
set_return_file(name, contentType, value)

Permite descargar contenido generado dinámicamente (CSV, JSON, PDF, etc.).

sftp_connect()

Crea una conexión SFTP para transferencia de archivos.

lua
sftp = sftp_connect(host, port, user, password)

Devuelve un objeto con los siguientes métodos:

Métodos del objeto SftpService

exists()

lua
existe = sftp:exists(path)

Devuelve true si el archivo existe en el servidor.

list()

lua
archivos = sftp:list(path)

Devuelve un array con los nombres completos de los archivos del directorio.

disconnect()

lua
sftp:disconnect()

Cierra la conexión SFTP.

Ejemplo: conexión reutilizable

En lugar de llamar sftp_file_exists() 56 veces (que abre una conexión nueva cada vez), conviene conectarse una sola vez y reutilizar:

lua
local sftp = sftp_connect("host", 22, "user", "password")

for i = 1, 56 do
    if sftp:exists("/backups/archivo-" .. i .. ".zip") then
        log("Archivo " .. i .. " encontrado")
    end
end

sftp:disconnect()

sftp_get_connection()

Resuelve una conexión SFTP de la base de datos por nombre y devuelve un objeto SftpService listo para conectar.

lua
sftp = sftp_get_connection(connectionName)

A diferencia de sftp_connect(), toma el nombre de una conexión configurada en la base de datos en lugar de credenciales directas.

Ejemplo:

lua
local sftp = sftp_get_connection("RSYNC.NET")
sftp:connect()

for i = 1, 56 do
    if sftp:exists("/path/archivo-" .. i .. ".zip") then
        log("Encontrado")
    end
end

sftp:disconnect()

sftp_file_exists()

Verifica si un archivo existe en un servidor SFTP usando una conexión nombrada de la base de datos.

lua
existe = sftp_file_exists(path, connectionName)

A diferencia de sftp:exists(), esta función abre y cierra una conexión nueva en cada llamada. Para múltiples verificaciones es más eficiente usar sftp_get_connection() + sftp:exists().