Zum Hauptinhalt springen

FTP-Client

Dateien hochladen und herunterladen, Remote-Ordner verwalten.

Einführung​

Netuno integriert in seinem Low-Code-Framework einen FTP-Client, der Verbindungen zu Servern, das Senden und Empfangen von Dateien, das Ändern von Ordnern und weitere Remote-Operationen ermöglicht.

Er unterstützt mehrere gleichzeitige Verbindungen sowie FTPS.

Dies dank der Java- und Open-Source-Implementierung Apache Commons Net, die es Netuno ermöglicht, diese Funktionalitäten in allen Skriptsprachen über die Ressource _ftp bereitzustellen.

Mehr über die FTP-Ressource von Netuno.

Konfiguration​

Der erste Schritt besteht darin, die FTP-Zugangsdaten zu konfigurieren, die Netuno für die Verbindung verwendet.

Navigieren Sie in der Anwendung, die Sie entwickeln, zur Umgebungskonfigurationsdatei. In diesem Beispiel verwenden wir die Entwicklungsumgebungsdatei unter:

  • config/_development.json

Prüfen Sie, ob die FTP-Konfigurationen bereits vorhanden sind; falls noch nicht, fügen Sie am Ende der Konfigurationsdatei (im JSON-Format) die FTP-Konfigurationsparameter hinzu:

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

Nach dem Speichern der Änderungen starten Sie Netuno einfach neu, damit die Konfigurationsänderungen übernommen werden. Dies sind die Standardeinstellungen für die Verbindung, wie der Name default angibt.

Sie können weitere FTP-Verbindungskonfigurationen hinzufügen, aber nur eine kann als Standard festgelegt werden.

Um weitere FTP-Verbindungskonfigurationen hinzuzufügen, wiederholen Sie einfach den Standardkonfigurationsblock und ersetzen den Namen default durch einen anderen Namen Ihrer Wahl; siehe Beispiel:

config/_development.json
{
...
"ftp": {
"default": {
"enabled": true,
"host": "mein.server.net",
"port": 22,
"username": "temp",
"password": "$eCr37"
},
"andere": {
"enabled": true,
"host": "mein.anderer-server.net",
"port": 22,
"username": "temp",
"password": "$eCr37"
}
},
...
}

Eine Konfiguration ähnlich dem obigen Beispiel ermöglicht die Verwendung des Standardkontos, wenn sie im Code wie folgt aufgerufen wird:

const ftp = _ftp.init()

Und um die Konfiguration andere zu verwenden, fügen Sie einfach den Namen der Konfiguration als Parameter zur Funktion _ftp.init() hinzu, wie folgt:

const ftpAndere = _ftp.init("andere")

Wenn Sie keinen Konfigurationsnamen als Parameter hinzufügen, wird immer das Standardkonto verwendet.

Verbindung​

Bevor Sie etwas tun, müssen Sie die FTP-Verbindung starten:

ftp.connect()

Arbeitsverzeichnis​

Bei FTP-Operationen müssen Sie festlegen, welcher Ordner verwendet wird.

Durch die Festlegung des Arbeitsverzeichnisses können wir die verschiedenen Manipulationen ausgehend von diesem Basisordner durchführen.

So ändern Sie das Arbeitsverzeichnis:

ftp.changeWorkingDirectory("mein/basisordner")

Jetzt wird jede Operation in diesem Ordner oder ausgehend von diesem Ordner ausgeführt.

Ordner erstellen und löschen​

Beim Erstellen eines Ordners geben Sie einfach den Pfad dieses Ordners an:

ftp.createDirectory("temporaerer-ordner")
ftp.createDirectory("temporaerer-ordner/unterordner")

So löschen oder entfernen Sie Ordner:

ftp.deleteDirectory("temporaerer-ordner/unterordner")
ftp.deleteDirectory("temporaerer-ordner")

Umbenennen​

Es ist möglich, Dateien oder Ordner umzubenennen; dabei wird der alte Pfad und anschließend der neue Pfad übergeben:

ftp.rename("alter-name", "neuer-name")

Dateien hochladen​

So laden Sie eine Textdatei hoch:

ftp.uploadText("meine-datei.txt", "Hallo FTP! Dies ist mein Inhalt...")

Dateien empfangen​

So rufen Sie eine Textdatei ab:

const dateiInhalt = ftp.downloadText("meine-datei.txt")
_out.println(dateiInhalt)

Elemente im Ordner auflisten​

Listet den gesamten Inhalt eines Ordners auf:

for (const i of ftp.list("pfad/ordner")) {
if (i.isDirectory()) {
_out.print("Ordner: ")
} else if (i.isFile()) {
_out.print("Datei: ")
} else {
_out.print("Sonstiges: ")
}
_out.println(i.getName())
_out.println("<br/>")
}

Gibt eine Liste von Objekten vom Typ FTPFile zurück.