Passer au contenu principal

Client FTP

Téléverser et télécharger des fichiers, gérer des dossiers distants.

Introduction​

Netuno intègre dans son framework low-code un client FTP, qui permet de se connecter à des serveurs, d'envoyer et de recevoir des fichiers, de modifier des dossiers, entre autres opérations distantes.

Il prend en charge plusieurs connexions simultanées, ainsi que FTPS.

Cela grâce à l'implémentation Java et open-source Apache Commons Net, qui permet à Netuno de fournir ces fonctionnalités dans tous les langages de script via la ressource _ftp.

En savoir plus sur la ressource FTP de Netuno.

Configuration​

La première étape consiste à configurer les données d'accès FTP que Netuno utilisera pour établir la connexion.

Naviguez dans l'application que vous développez jusqu'au fichier de configuration d'environnement. Dans cet exemple, nous utiliserons le fichier d'environnement de développement situé dans :

  • config/_development.json

Vérifiez qu'il ne contient pas déjà les configurations pour FTP, sinon à la fin du fichier de configuration (au format JSON) ajoutez les paramètres de configuration FTP :

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

Après avoir enregistré les modifications, il suffit de redémarrer Netuno pour prendre en compte les modifications de configuration. Celles-ci constituent les configurations par défaut pour la connexion, comme l'indique le nom default.

Vous pouvez ajouter d'autres configurations de connexion FTP, mais une seule pourra être définie par défaut.

Pour ajouter d'autres configurations de connexion FTP, il suffit de répéter le bloc de configuration par défaut et de remplacer le nom default par un autre nom de votre choix, voir l'exemple :

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

Une configuration similaire à l'exemple ci-dessus permettra d'utiliser le compte default lorsqu'elle est appelée de la manière suivante dans le code :

const ftp = _ftp.init()

Et pour utiliser la configuration autre, il suffit d'ajouter le nom de la configuration en paramètre à la fonction _ftp.init() de la manière suivante :

const ftpAutre = _ftp.init("autre")

Si vous n'ajoutez pas de nom de configuration en paramètre, le compte default sera toujours utilisé.

Connexion​

Avant de faire quoi que ce soit, il faut initier la connexion FTP :

ftp.connect()

Dossier de travail​

Lors de la réalisation d'opérations sur le FTP, il est nécessaire de définir quel dossier sera utilisé.

Grâce à la définition du dossier de travail, nous pourrons effectuer les diverses manipulations à partir de ce dossier de base.

Pour changer le dossier de travail :

ftp.changeWorkingDirectory("mon/dossier/base")

Désormais, toute opération sera effectuée dans ce dossier ou à partir de celui-ci.

Créer et supprimer des dossiers​

Pour créer un dossier, il suffit d'indiquer le chemin de ce dossier :

ftp.createDirectory("dossier-temporaire")
ftp.createDirectory("dossier-temporaire/sous-dossier")

Pour supprimer ou retirer des dossiers :

ftp.deleteDirectory("dossier-temporaire/sous-dossier")
ftp.deleteDirectory("dossier-temporaire")

Renommer​

Il est possible de renommer des fichiers ou des dossiers, on passe l'ancien chemin puis le nouveau chemin :

ftp.rename("ancien-nom", "nouveau-nom")

Envoyer des fichiers​

Pour soumettre un fichier texte :

ftp.uploadText("mon-fichier.txt", "Bonjour FTP ! Ceci est mon contenu...")

Recevoir des fichiers​

Pour obtenir un fichier texte :

const contenuFichier = ftp.downloadText("mon-fichier.txt")
_out.println(contenuFichier)

Lister les éléments du dossier​

Liste tout le contenu d'un dossier :

for (const i of ftp.list("chemin/dossier")) {
if (i.isDirectory()) {
_out.print("Dossier : ")
} else if (i.isFile()) {
_out.print("Fichier : ")
} else {
_out.print("Autre : ")
}
_out.println(i.getName())
_out.println("<br/>")
}

Retourne une liste d'objets de type FTPFile.