Module Lua ftp
Le module ftp permet de transférer des fichiers via les protocoles FTP ou SFTP.
Import
Pour importer le module :
Configuration YAML
Le module ftp nécessite une configuration spécifique pour fonctionner. Cette configuration est définie dans le fichier de configuration de l'agent.
iot:
modules:
ftp:
- name: ftp1 # nom unique de l'instance
protocol: sftp # "ftp" ou "sftp"
host: files.example.com # hôte du serveur
port: 22 # port (21 pour FTP, 22 pour SFTP)
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(string, requis) : Nom unique de l'instance.protocol(string) : Protocole à utiliser. Valeurs possibles :"ftp"ou"sftp".host(string, requis) : Nom DNS ou adresse IP du serveur.port(integer) : Port TCP (21pour FTP,22pour SFTP).user(string, requis) : Login utilisateur.password(string) : Mot de passe (si pas d'authentification par clé).key_file(string) : Chemin vers la clé privée SSH (pour SFTP avec authentification par clé).timeout_ms(integer) : Délai de timeout de connexion en millisecondes (défaut :5000).
API Lua
Liste des fonctions
| Fonction | Signature Lua | Rôle | Retour (succès) | Retour (échec) |
|---|---|---|---|---|
get |
bool, err = ftp.get(remotePath, localPath) |
Télécharge un fichier distant. | true, nil |
nil, "msg" |
put |
bool, err = ftp.put(localPath, remotePath) |
Envoie un fichier vers le serveur. | true, nil |
nil, "msg" |
| Champs | ftp.name, ftp.type |
Métadonnées du module. | – | – |
ftp.get(remotePath, localPath)
Télécharge un fichier depuis le serveur distant vers le système local.
- Paramètres :
remotePath(string) : Chemin du fichier sur le serveur distant.-
localPath(string) : Chemin local de destination. -
Retour :
- En cas de succès :
true,nil. - En cas d'erreur :
nil, message d'erreur.
local ftp = require("ftp1")
local ok, err = ftp.get("/remote/data.txt", "/tmp/data.txt")
if not ok then
print("Échec du téléchargement : " .. err)
else
print("Fichier téléchargé avec succès.")
end
ftp.put(localPath, remotePath)
Envoie un fichier local vers le serveur distant.
- Paramètres :
localPath(string) : Chemin du fichier local à envoyer.-
remotePath(string) : Chemin de destination sur le serveur distant. -
Retour :
- En cas de succès :
true,nil. - En cas d'erreur :
nil, message d'erreur.
local ftp = require("ftp1")
local ok, err = ftp.put("/tmp/config.yml", "/remote/config.yml")
if not ok then
print("Échec de l'envoi : " .. err)
else
print("Fichier envoyé avec succès.")
end
Exemple complet
local ftp = require("ftp1")
-- Télécharger un fichier de configuration
local ok, err = ftp.get("/config/settings.json", "/tmp/settings.json")
if not ok then
print("Erreur téléchargement : " .. err)
return
end
-- Modifier le fichier localement...
-- Renvoyer le fichier modifié
local ok2, err2 = ftp.put("/tmp/settings.json", "/config/settings.json")
if not ok2 then
print("Erreur envoi : " .. err2)
end
Champs Lua associés
ftp.name: Retourne le nom de l'instance du module.ftp.type: Retourne le type du module ("ftp").