Ist es möglich, einen einzeiligen Befehl in Python zu haben, um einen einfachen FTP-Server auszuführen? Ich möchte dies als schnelle und vorübergehende Möglichkeit zum Übertragen von Dateien auf eine Linux-Box tun können, ohne einen FTP-Server installieren zu müssen. Am besten eine Möglichkeit, eingebaute Python-Bibliotheken zu verwenden, damit nichts extra installiert werden muss.
python
ftp
ftp-server
zio
quelle
quelle
-o Ciphers=arcfour
, dhsshfs $REMOTEHOST:$DIRECTORY $MOUNTPOINT -o Ciphers=arcfour
kopieren, verschieben, umbenennen und verwalten Sie Ihre Dateien in Ihrem Dateisystem. sshfs ist auch für Mac OSX verfügbar.Antworten:
Obligatorisch verdrehtes Beispiel:
Und wahrscheinlich nützlich:
quelle
Schauen Sie sich pyftpdlib von Giampaolo Rodola an. Es ist einer der besten FTP-Server für Python. Es wird in Googles Chrom (ihrem Browser) und Basar (einem Versionskontrollsystem) verwendet. Es ist die vollständigste Implementierung in Python für RFC-959 (auch bekannt als: FTP-Server-Implementierungsspezifikation).
Über die Befehlszeile:
Alternativ 'my_server.py':
Es gibt weitere Beispiele auf der Website, wenn Sie etwas Komplizierteres wünschen.
So erhalten Sie eine Liste der Befehlszeilenoptionen:
Hinweis: Wenn Sie einen Standard-FTP-Port überschreiben oder verwenden möchten, benötigen Sie Administratorrechte (z. B. sudo).
quelle
>>> from pyftpdlib import ftpserver
:pyftpdlib\ftpserver.py:54: DeprecationWarning: pyftpdlib.ftpserver module is deprecated
Warum verwenden Sie nicht stattdessen einen einzeiligen HTTP- Server?
wird den Inhalt des aktuellen Arbeitsverzeichnisses über HTTP auf Port 8000 bereitstellen.
Wenn Sie Python 3 verwenden, sollten Sie stattdessen schreiben
Siehe die SimpleHTTPServer-Moduldokumente für 2.x und die http.server- Dokumente für 3.x.
In beiden Fällen ist der Port-Parameter übrigens optional.
quelle
Die obigen Antworten gingen alle davon aus, dass Ihre Python-Distribution einige Bibliotheken von Drittanbietern haben würde, um das Ziel "One Liner Python FTPD" zu erreichen, aber das ist nicht der Fall, was @zio verlangte. Außerdem umfasst SimpleHTTPServer einen Webbrowser zum Herunterladen von Dateien. Dies ist nicht schnell genug.
Python kann für sich allein nicht tun ftpd, aber Sie können netcat ,
nc
:nc
ist im Grunde ein integriertes Tool von allen UNIX-ähnlichen Systemen (auch von eingebetteten Systemen), daher ist es perfekt für die " schnelle und vorübergehende Übertragung von Dateien ".Führen Sie Schritt 1 auf der Empfängerseite aus:
Dies überwacht Port 12345 und wartet auf Daten.
Schritt 2 auf der Absenderseite:
Sie können auch
pv
in die Mitte stellen, um den Fortschritt der Übertragung zu überwachen:Nachdem die Übertragung abgeschlossen ist, werden beide Seiten von
nc
automatisch beendet und die Arbeit erledigt.quelle
tar
undnc
verfügbar sein werden. Was ist, wenn es Windows ist?Für pyftpdlib-Benutzer. Ich habe dies auf der pyftpdlib-Website gefunden. Dadurch wird anonymes FTP mit Schreibzugriff auf Ihr Dateisystem erstellt. Verwenden Sie es daher mit der gebotenen Sorgfalt. Weitere Funktionen stehen unter der Haube für mehr Sicherheit zur Verfügung. Schauen Sie einfach mal rein:
Könnte für diejenigen hilfreich sein, die versucht haben, die oben beschriebene veraltete Methode zu verwenden.
sudo python -m pyftpdlib.ftpserver
quelle
sudo
wenn Sie in einem venvpip3 install pyftpdlib
undpython3 -m pyftpdlib -w
. arbeitete wie ein Zauber für mich.Installieren:
Dann der Code:
Gehen Sie tiefer:
http://twistedmatrix.com/documents/current/core/examples/
quelle
Die einfachere Lösung besteht darin, die pyftpd-Bibliothek zu verwenden. Mit dieser Bibliothek können Sie den Python-FTP-Server in einer Zeile drehen. Es wird zwar nicht standardmäßig installiert, aber wir können es mit dem einfachen Befehl apt installieren
Führen Sie nun aus dem Verzeichnis, das Sie bedienen möchten, das Python-Modul aus
quelle
Ich weiß nichts über einen einzeiligen FTP-Server, aber wenn Sie das tun
Auf 0.0.0.0:8000 wird ein HTTP-Server ausgeführt, der Dateien aus dem aktuellen Verzeichnis bereitstellt. Wenn Sie nach einer Möglichkeit suchen, Dateien mit einem Webbrowser schnell von einer Linux-Box zu entfernen, können Sie sie nicht übertreffen.
quelle
quelle
Gute Liste der Werkzeuge bei
http://www.willdonnelly.net/blog/file-transfer/
Ich habe mich schon mehrmals benutzt. Sehr schön.
quelle