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 :
{
...
"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 :
{
...
"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 :
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const ftp = _ftp.init()
const ftp = _ftp.init()
ftp = _ftp.init()
ftp = _ftp.init()
val ftp = _ftp.init()
def 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 :
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const ftpAutre = _ftp.init("autre")
const ftpAutre = _ftp.init("autre")
ftpAutre = _ftp.init("autre")
ftpAutre = _ftp.init("autre")
val ftpAutre = _ftp.init("autre")
def 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 :
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
ftp.connect()
ftp.connect()
ftp.connect()
ftp.connect()
ftp.connect()
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 :
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
ftp.changeWorkingDirectory("mon/dossier/base")
ftp.changeWorkingDirectory("mon/dossier/base")
ftp.changeWorkingDirectory("mon/dossier/base")
ftp.changeWorkingDirectory("mon/dossier/base")
ftp.changeWorkingDirectory("mon/dossier/base")
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 :
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
ftp.createDirectory("dossier-temporaire")
ftp.createDirectory("dossier-temporaire/sous-dossier")
ftp.createDirectory("dossier-temporaire")
ftp.createDirectory("dossier-temporaire/sous-dossier")
ftp.createDirectory("dossier-temporaire")
ftp.createDirectory("dossier-temporaire/sous-dossier")
ftp.createDirectory("dossier-temporaire")
ftp.createDirectory("dossier-temporaire/sous-dossier")
ftp.createDirectory("dossier-temporaire")
ftp.createDirectory("dossier-temporaire/sous-dossier")
ftp.createDirectory("dossier-temporaire")
ftp.createDirectory("dossier-temporaire/sous-dossier")
Pour supprimer ou retirer des dossiers :
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
ftp.deleteDirectory("dossier-temporaire/sous-dossier")
ftp.deleteDirectory("dossier-temporaire")
ftp.deleteDirectory("dossier-temporaire/sous-dossier")
ftp.deleteDirectory("dossier-temporaire")
ftp.deleteDirectory("dossier-temporaire/sous-dossier")
ftp.deleteDirectory("dossier-temporaire")
ftp.deleteDirectory("dossier-temporaire/sous-dossier")
ftp.deleteDirectory("dossier-temporaire")
ftp.deleteDirectory("dossier-temporaire/sous-dossier")
ftp.deleteDirectory("dossier-temporaire")
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 :
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
ftp.rename("ancien-nom", "nouveau-nom")
ftp.rename("ancien-nom", "nouveau-nom")
ftp.rename("ancien-nom", "nouveau-nom")
ftp.rename("ancien-nom", "nouveau-nom")
ftp.rename("ancien-nom", "nouveau-nom")
ftp.rename("ancien-nom", "nouveau-nom")
Envoyer des fichiers
Pour soumettre un fichier texte :
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
ftp.uploadText("mon-fichier.txt", "Bonjour FTP ! Ceci est mon contenu...")
ftp.uploadText("mon-fichier.txt", "Bonjour FTP ! Ceci est mon contenu...")
ftp.uploadText("mon-fichier.txt", "Bonjour FTP ! Ceci est mon contenu...")
ftp.uploadText("mon-fichier.txt", "Bonjour FTP ! Ceci est mon contenu...")
ftp.uploadText("mon-fichier.txt", "Bonjour FTP ! Ceci est mon contenu...")
ftp.uploadText("mon-fichier.txt", "Bonjour FTP ! Ceci est mon contenu...")
Recevoir des fichiers
Pour obtenir un fichier texte :
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const contenuFichier = ftp.downloadText("mon-fichier.txt")
_out.println(contenuFichier)
const contenuFichier = ftp.downloadText("mon-fichier.txt")
_out.println(contenuFichier)
contenuFichier = ftp.downloadText("mon-fichier.txt")
_out.println(contenuFichier)
contenuFichier = ftp.downloadText("mon-fichier.txt")
_out.println(contenuFichier)
val contenuFichier = ftp.downloadText("mon-fichier.txt")
_out.println(contenuFichier)
def contenuFichier = ftp.downloadText("mon-fichier.txt")
_out.println(contenuFichier)
Lister les éléments du dossier
Liste tout le contenu d'un dossier :
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
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/>")
}
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/>")
}
for i in ftp.list("chemin/dossier"):
if i.isDirectory():
_out.print("Dossier : ")
elif i.isFile():
_out.print("Fichier : ")
else:
_out.print("Autre : ")
_out.println(i.getName())
_out.println("<br/>")
ftp.list("chemin/dossier").each do |i|
if i.isDirectory()
_out.print("Dossier : ")
elsif i.isFile()
_out.print("Fichier : ")
else
_out.print("Autre : ")
end
_out.println(i.getName())
_out.println("<br/>")
end
ftp.list("chemin/dossier").forEach {
if (it.isDirectory()) {
_out.print("Dossier : ")
} else if (it.isFile()) {
_out.print("Fichier : ")
} else {
_out.print("Autre : ")
}
_out.println(it.getName())
_out.println("<br/>")
}
for (i in 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.