Brauchst du schnell einen SFTP-Server, um etwas auf deinem lokalen Entwicklerrechner zu testen?

Ja?

Hier bitte…

Einrichtung

Hinweis: Ich habe das auf einem Mac mit laufendem Docker Desktop gemacht.

Erstelle zuerst eine Testdatei, die auf den SFTP-Server hochgeladen wird:

  • /someotherdirectory/hello_sftp.txt

Dann erstelle ein Verzeichnis, das als Docker-Container-Volume-Mount verwendet wird:

  • /Users/youruser/sftp-in

Erstelle schliesslich ein weiteres Verzeichnis, in das wir die zuvor hochgeladene Datei herunterladen werden:

  • /some-download-dir

Jetzt ziehe das Docker-Image und fuehre es aus:

$ docker run -v /Users/youruser/sftp-in:/home/foo/upload -p 2222:22 -d atmoz/sftp foo:pass

Lass uns mit dem SFTP-Server verbinden:

$ sftp -oPort=2222 foo@localhost
foo@localhost's password:
Connected to localhost.
sftp>

Alles ist an seinem Platz und wir koennen eine Datei hochladen.

Eine Datei auf den SFTP-Server hochladen

Mit der Testdatei auf dem Host unter /someotherdirectory/hello_sftp.txt, lade sie hoch:

sftp> put /someotherdirectory/hello_sftp.txt /upload/hello_sftp.txt
Uploading /someotherdirectory/hello_sftp.txt to /upload/hello_sftp.txt
/someotherdirectory/hello_sftp.txt          100% 0  0.0KB/s 00:00

Das war’s. Die Datei wurde von deinem lokalen Host (deinem Entwicklerrechner) auf den SFTP-Server hochgeladen; das Upload-Verzeichnis des Servers ist ein Verzeichnis auf deinem Host.

Wir koennen auf drei Arten ueberpruefen, ob es funktioniert hat.

Auf dem SFTP-Server:

sftp> ls /upload
/upload/hello_sftp.txt

Auf dem Host:

$ ls /Users/youruser/sftp-in

Und von innerhalb des Docker-Containers (oeffne zuerst eine Shell):

docker exec -ti 743fe6ac65af /bin/bash

Dann liste die Datei auf:

root@743fe6ac65af:/# ls /home/foo/upload/
hello_sftp.txt

Eine Datei vom SFTP-Server herunterladen

Du kannst auch eine Datei vom SFTP-Server herunterladen.

Hole die zuvor hochgeladene Datei ab und speichere sie in einem anderen Verzeichnis:

sftp> get /upload/hello_sftp.txt /some-download-dir/hello_again.txt
Fetching /upload/hello_sftp.txt to /some-download-dir/hello_again.txt

Pruefe es auf dem Host:

$ ls /some-download-dir/

Danke fuers Lesen. Ich hoffe, es hat geholfen!

Gerne kannst du mir einen Kaffee kaufen, wenn dir dieser Beitrag gefallen hat.

Ressourcen