Aller au contenu

Module Lua ftp

Le module ftp permet de transférer des fichiers en FTP ou SFTP (SSH). Il expose deux fonctions :

  • get(remotePath, localPath) pour télécharger un fichier.
  • put(localPath, remotePath) pour envoyer un fichier.

Pour l’importer, utilisez :

local ftp = require("ftp1")
-- remplacer “ftp” par le name du module dans le YAML

Configuration

Ajoutez dans aca04-agentaca.yaml :

modules:
  ftp:
    - name: ftp1     # nom du module
        protocol: sftp      # "ftp" ou "sftp"
        host: files.example.com  # hôte du serveur
        port: 22                # port 21 (FTP) ou 22 (SFTP); optionnel
        user: deploy           # utilisateur
        password: hunter2      # mot de passe (pour auth par mot de passe)
        # key_file: /path/id_rsa # chemin de la clé privée (pour SFTP key auth)
        timeout_ms: 5000      # timeout de connexion en ms (défaut 5000)

Détails de la configuration

  • name : nom unique de l’instance.
  • type : doit être ftp.
  • protocol : "ftp" ou "sftp".
  • host : nom DNS ou IP du serveur.
  • port : port TCP (21 pour FTP, 22 pour SFTP).
  • user : login utilisateur.
  • password : mot de passe (si pas de clé).
  • key_file : chemin vers la clé privée (pour SFTP).
  • timeout_ms : délai de timeout en millisecondes.

Fonctions Lua

ftp1.get(remotePath, localPath)

Télécharge le fichier remotePath sur le serveur et le stocke sous localPath en local.

  • Paramètres
  • remotePath (string) : chemin distant.
  • localPath (string) : chemin local de destination.
  • Retour
  • true si OK, sinon nil et err (string).
local ok, err = ftp1.get("/remote/data.txt", "/tmp/data.txt")
if not ok then
  print("Échec du téléchargement :", err)
end

ftp1.put(localPath, remotePath)

Envoie le fichier localPath depuis votre machine vers remotePath sur le serveur.

  • Paramètres
  • localPath (string) : chemin du fichier local.
  • remotePath (string) : chemin distant de destination.
  • Retour
  • true si OK, sinon nil et err (string).
local ok, err = ftp1.put("/tmp/config.yml", "/remote/config.yml")
if not ok then
  print("Échec de l’envoi :", err)
end

Champs associés

  • ftp1.name : nom de l’instance FTP/SFTP.
  • ftp1.type : égal à "ftp".