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.