Ir al contenido

SFTP Activities

Versión: 1.1.0  ·  ID: zoan-packages-sftp  ·  Autor: Zoan Software

El paquete SFTP transfiere archivos de forma segura con un servidor remoto mediante el protocolo SFTP (SSH File Transfer Protocol). Es muy usado en integraciones entre empresas: subir archivos a un servidor (un lote de facturas para un proveedor), descargar archivos que dejan ahí (reportes de un banco), o gestionar carpetas remotas. No necesita ningún cliente instalado en la máquina del robot, así que funciona también en ejecución desatendida.

Todas las operaciones trabajan sobre una sesión que abres con SFTP Connect y compartes con las demás actividades. Una sola conexión sirve para todas las transferencias, sin volver a autenticarse en cada archivo:

  • Con body: las actividades dentro heredan la sesión; al terminar (también si algo falla) la conexión se cierra sola.
  • Sin body: guardas la sesión en una variable, la pasas como session y la cierras con SFTP Close.

A diferencia de los paquetes de correo, aquí la sesión es obligatoria: una actividad SFTP fuera del body de Connect y sin session falla con 'session' debe ser una ZoanSftpSession.

SFTP Connect host = "sftp.proveedor.com" username = "zoan" password = credential("sftp-proveedor")["password"]
└─ body:
SFTP Upload localPath = rutaLocal remotePath = "/entrada/factura.xml"

SFTP admite dos formas de autenticarse (elige una en SFTP Connect):

MétodoCómo
ContraseñaParámetro password con una credencial — credential("sftp-proveedor")["password"].
Clave privadaParámetro privateKeyPath con la ruta a tu clave (.pem / OpenSSH) en la máquina del robot, y privateKeyPassphrase si está cifrada. Si das privateKeyPath, se usa la clave y se ignora password.

La huella (host key) identifica al servidor. Indícala en el parámetro hostKeyFingerprint de SFTP Connect y el robot solo se conecta a ese servidor: si otro se hace pasar por él (un intermediario en la red), la conexión se rechaza antes de enviar el usuario o la contraseña. Desde la versión 1.1.0.

  • Cómo obtenerla: conéctate una vez sin huella; el log muestra un aviso con la huella recibida (SHA256:…), cópiala al parámetro. También te la puede dar el administrador del servidor (ssh-keygen -lf sobre la llave pública del servidor).
  • Sin huella: se acepta el servidor que responda, como en versiones anteriores, y la huella queda en el log.
  • Si el servidor cambia su llave de forma legítima, la conexión falla con un error que muestra la huella esperada y la recibida: actualiza el parámetro.

Las rutas del servidor usan barras /: /entrada/datos.csv, /salida/reportes/. Una ruta sin / inicial es relativa a la carpeta de inicio del usuario en el servidor. No las confundas con las rutas locales (de la máquina del robot), que van en localPath.

ActividadTipoSalidaQué hace
SFTP Connectsftp-connectZoanSftpSessionConecta al servidor SFTP
SFTP Closesftp-close—Cierra la conexión
ActividadTipoSalidaQué hace
SFTP Uploadsftp-uploadstringSube un archivo local al servidor
SFTP Downloadsftp-downloadstringDescarga un archivo del servidor
ActividadTipoSalidaQué hace
SFTP List Directorysftp-listList<object>Lista archivos y carpetas remotas
SFTP Existssftp-existsbool¿Existe un archivo/carpeta?
SFTP Move / Renamesftp-movestringMueve o renombra un archivo remoto
SFTP Deletesftp-delete—Elimina un archivo remoto
SFTP Create Directorysftp-mkdir—Crea una carpeta remota