Einzeiliger FTP-Server in Python
FTP ist eine Abkürzung für File Transfer Protocol. Es ermöglicht Ihnen, Dateien zwischen Client und Server über ein Computernetzwerk zu übertragen.
Die Python-Bibliothek enthält ein pyftpdlib
-Modul, mit dem Sie effiziente und skalierbare FTP-Server mit Python schreiben können. In diesem Tutorial lernen Sie, einen FTP-Server mit einem Einzeiler in Python zu erstellen.
Verwenden Sie pyftpdlib
, um einen einzeiligen FTP-Server in Python zu erstellen
Zuerst müssen Sie das Modul pyftpdlib
installieren.
pip install pyftpdlib
Ausgang:
Successfully built pyftpdlib
Installing collected packages: pyftpdlib
Successfully installed pyftpdlib-1.5.6
Dann können Sie im Terminal den Befehl pyftpdlib
ausführen. Der folgende Befehl startet beispielsweise einen FTP-Server mit dem aktuellen Verzeichnis.
python -m pyftpdlib
Ausgang:
[I 2022-09-20 21:36:36] concurrency model: async
[I 2022-09-20 21:36:36] masquerade (NAT) address: None
[I 2022-09-20 21:36:36] passive ports: None
[I 2022-09-20 21:36:36] >>> starting FTP server on 0.0.0.0:2121, pid=3492 <<<
Überprüfen Sie als Nächstes, ob der Server ausgeführt wird.
curl ftp://127.0.0.1:2121
Es wird den gesamten Inhalt des aktuellen Verzeichnisses wie folgt auflisten.
Ausgang:
-rw-rw-rw- 1 owner group 6817 May 20 06:55 -1.14-windows.xml
drwxrwxrwx 1 owner group 0 Nov 13 2021 .Icecream Screen Recorder
drwxrwxrwx 1 owner group 4096 Mar 28 02:51 .THypervBox
drwxrwxrwx 1 owner group 12288 Sep 18 14:46 .VirtualBox
drwxrwxrwx 1 owner group 4096 May 15 07:36 .android
Der Standardmodus ist schreibgeschützt. Sie können den Schreibzugriff mit der Option -w
aktivieren. Mit dem Flag -d
können Sie ein anderes Verzeichnis zur Freigabe auf dem Server verwenden.
Das folgende Beispiel bedient das Verzeichnis C:\pc\test_folder
mit Schreibzugriff für eingeloggte Benutzer.
python -m pyftpdlib -w -d C:\pc\test_folder
Ausgang:
[I 2022-09-22 19:55:47] concurrency model: async
[I 2022-09-22 19:55:47] masquerade (NAT) address: None
[I 2022-09-22 19:55:47] passive ports: None
[I 2022-09-22 19:55:47] >>> starting FTP server on 0.0.0.0:2121, pid=25560 <<<
Um zu prüfen, ob es läuft.
curl ftp://127.0.0.1:2121
Ausgang:
drwxrwxrwx 1 owner group 0 Feb 23 2022 New folder
-rw-rw-rw- 1 owner group 0 Feb 23 2022 books.txt
-rw-rw-rw- 1 owner group 18 Jun 09 15:58 hello.txt
Um die anonyme Anmeldung zu deaktivieren, müssen Sie vor dem Start des Servers den Benutzernamen
und das Passwort
angeben.
Mit der Option -u
können Sie den Benutzernamen
festlegen, und die Option -P
hilft beim Festlegen eines Passworts
für die Anmeldung beim FTP-Server.
python -m pyftpdlib -w -d C:\pc\test_folder -u username -P password
Ausgang:
[I 2022-09-23 00:16:12] concurrency model: async
[I 2022-09-23 00:16:12] masquerade (NAT) address: None
[I 2022-09-23 00:16:12] passive ports: None
[I 2022-09-23 00:16:12] >>> starting FTP server on 0.0.0.0:2121, pid=22732 <<<
Führen Sie diesen Befehl aus, um das freigegebene Verzeichnis aufzulisten.
curl --user username:password ftp://127.0.0.1:2121/
Ausgang:
drwxrwxrwx 1 owner group 0 Feb 23 2022 New folder
-rw-rw-rw- 1 owner group 0 Feb 23 2022 books.txt
-rw-rw-rw- 1 owner group 18 Jun 09 15:58 hello.txt
Führen Sie für weitere Befehlsoptionen den Befehl help aus.
python -m pyftpdlib --help