SFTP Daten Upload mit Claris FileMaker 2023

SFTP Daten Upload mit Claris FileMaker 2023

FileMaker erweitert CURL Befehl um SFTP

Claris hat mit der neusten FileMaker 20.1 Version die CURL Befehle um SFTP erweitert.
Das war schon länger ein Wunsch von vielen Entwicklern, die bis heute auf Plugins von Drittherstellern ausweichen mussten.

Ab sofort besteht die Möglichkeit, mit den integrierten Werkzeugen von FileMaker direkt aus einem Containerfeld Dokumente oder Bilder auf einen SFTP-Server hochzuladen oder Dateien aus einem SFTP-Server direkt in ein Containerfeld zu speichern. Dadurch werden unverschlüsselte FTP-Dienste abgelöst und ein höheres Maß an Datensicherheit erreicht, was ein wichtiger Schritt darstellt. Viele Dienste bieten mittlerweile überhaupt keinen FTP-Zugriff mehr an.

Durch Verwendung von CURL-Befehlen ist es möglich, sich entweder mit Benutzername und Passwort oder einem Zertifikat (.pem) anzumelden. Außerdem können neben herkömmlichen SFTP-Diensten auch EC2-Server von AWS angesprochen werden.


SFTP Upload mit Benutzername und Passwort

Steht für die Verbindung ein Benutzername / Passwort zur Verfügung, wird dieses mittels eines Doppelpunktes und dem Parameter –user übergeben. Das Dokument, das hochgeladen werden soll, liegt in einem Containerfeld und wird über eine Variable ebenfalls als Parameter übergeben. Wichtig, wie auch schon unter FTP: Der Dateiname wird im Pfad übergeben und muss nicht mit dem Dateinamen der Datei im Container übereinstimmen. Man kann dies zum Beispiel dafür nutzen, dass die Datei mit der UUID beschriftet wird.
Der Parameter –ftp-create-dirs erlaubt das automatische Erstellen von Ordnern, falls diese so übergeben werden und auf der Gegenseite noch nicht existieren. 

FileMaker Script Beispiel

Set Variable [ $url ; Value: "sftp://server.meisol.ch:22" ] 
Set Variable [ $folder ; Value: "/test" ] 
Set Variable [ $username ; Value: "username" ] 
Set Variable [ $password ; Value: "password" ] 
Set Variable [ $cert ; Value: "" ] 

Set Variable [ $file ; Value: media::Object ] 
Set Variable [ $filename ; Value: GetContainerAttribute ( media::Object; "filename" ) ] 

Set Variable [ $url ; Value: $url & $folder & "/" & $filename ] 
Set Variable [ $options ; Value: " --user " & $username & ":" & $password & " " & " --upload-file $file --ftp-create-dirs " ] 

Insert from URL [ Select ; With dialog: Off ; Target: $return ; $url ; Verify SSL Certificates ; cURL options: $options ] 

SFTP Upload über ein Client Zertifikat (.pem) anstelle vom Passwort

Steht für die SFTP Verbindung ausschliesslich ein Client-Zertifikat (.pem) zur Verfügung, wird dieses mithilfe eines Containers im FileMaker gespeichert und im Script in einer Variablen gespeichert.
Für die Authentifizierung wird nur der Benutzername und die Zertifikatsdatei benötigt.

FileMaker Script Beispiel

Set Variable [ $url ; Value: "sftp://server.meisol.ch:22" ] 
Set Variable [ $folder ; Value: "/test" ] 
Set Variable [ $username ; Value: "username" ] 
Set Variable [ $cert ; Value: media::Cert_private_File ] 

Set Variable [ $file ; Value: media::Object ] 
Set Variable [ $filename ; Value: GetContainerAttribute ( media::Object; "filename" ) ] 

Set Variable [ $url ; Value: $url & $folder & "/" & $filename ] 
Set Variable [ $options ; Value: " --user " & $username & " --key $cert --upload-file $file --ftp-create-dirs " ] 

Insert from URL [ Select ; With dialog: Off ; Target: $return ; $url ; Verify SSL Certificates ; cURL options: $options ] 

SFTP Download

Dateien können aus einem SFTP Server direkt in das Containerfeld gespeichert werden. Dazu wird der Pfad und der Filename übermittelt und die Rückmeldung in das Containerfeld umgeleitet.

FileMaker Script Beispiel

Set Variable [ $url ; Value: "sftp://server.meisol.ch:22" ]
Set Variable [ $folder ; Value: "/test" ]
Set Variable [ $username ; Value: "username" ]
Set Variable [ $password ; Value: "password" ]

Set Variable [ $filename ; Value: "FROG.jpg" ]

Set Variable [ $url ; Value: $url & $folder & "/" & $filename ]
Set Variable [ $options ; Value: " --user " & $username & ":" & $password ]

Insert from URL [ Select ; With dialog: Off ; Target: media::Object ; $url ; Verify SSL Certificates ; cURL options: $options ]

SFTP Datei löschen

Um eine Datei auf einem SFTP Server zu löschen wird der Parameter -Q „-RM Ordner/Dokument.jpg“ übergeben.

FileMaker Script Beispiel

Set Variable [ $url ; Value: "sftp://server.meisol.ch:22" ]
Set Variable [ $folder ; Value: "/test" ]
Set Variable [ $username ; Value: "username" ]
Set Variable [ $password ; Value: "password" ]

Set Variable [ $filename ; Value: "FROG.jpg" ] 

Set Variable [ $url ; Value: $url & $folder & "/" & $filename ] 
Set Variable [ $options ; Value: " --user " & $username & ":" & $password & " -Q \"-RM " & $folder & "/" & $filename & "\" " ] 

Insert from URL [ Select ; With dialog: Off ; Target: $return ; $url ; Verify SSL Certificates ; cURL options: $options ] 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.