Czy można mieć jedno wierszowe polecenie w Pythonie, aby wykonać prosty serwer ftp? Chciałbym móc to zrobić jako szybki i tymczasowy sposób przesyłania plików do komputera z systemem Linux bez konieczności instalowania serwera ftp. Najlepiej sposób na użycie wbudowanych bibliotek Pythona, więc nie ma nic dodatkowego do zainstalowania.
python
ftp
ftp-server
zio
źródło
źródło
-o Ciphers=arcfour
, tj.sshfs $REMOTEHOST:$DIRECTORY $MOUNTPOINT -o Ciphers=arcfour
Kopiuj, przenoś, zmieniaj nazwy, zarządzaj plikami w systemie plików. sshfs jest również dostępny dla systemu Mac OSX.Odpowiedzi:
Obligatory Twisted przykład:
I prawdopodobnie przydatne:
źródło
Sprawdź pyftpdlib od Giampaolo Rodoli. Jest to jeden z najlepszych serwerów ftp dla Pythona. Jest używany w Google Chrome (ich przeglądarka) i bazarze (system kontroli wersji). Jest to najbardziej kompletna implementacja w Pythonie dla RFC-959 (aka: specyfikacja implementacji serwera FTP).
Z linii poleceń:
Alternatywnie „my_server.py”:
Na stronie jest więcej przykładów, jeśli chcesz czegoś bardziej skomplikowanego.
Aby uzyskać listę opcji wiersza poleceń:
Uwaga, jeśli chcesz przesłonić lub użyć standardowego portu ftp, będziesz potrzebować uprawnień administratora (np. Sudo).
źródło
>>> from pyftpdlib import ftpserver
:pyftpdlib\ftpserver.py:54: DeprecationWarning: pyftpdlib.ftpserver module is deprecated
Dlaczego zamiast tego nie użyjesz jednowierszowego serwera HTTP ?
będzie obsługiwać zawartość bieżącego katalogu roboczego przez HTTP na porcie 8000.
Jeśli używasz Pythona 3, powinieneś zamiast tego pisać
Zobacz dokumentację modułu SimpleHTTPServer dla wersji 2.xi dokumentację http.server dla wersji 3.x.
Nawiasem mówiąc, w obu przypadkach parametr portu jest opcjonalny.
źródło
Wszystkie powyższe odpowiedzi zakładały, że Twoja dystrybucja Pythona będzie miała biblioteki innych firm, aby osiągnąć cel „One Liner Python ftpd”, ale nie o to pytał @zio. Ponadto SimpleHTTPServer obejmuje przeglądarkę internetową do pobierania plików, nie jest wystarczająco szybki.
Python nie może zrobić ftpd przez siebie, ale można użyć netcata ,
nc
:nc
jest w zasadzie narzędziem wbudowanym w dowolne systemy typu UNIX (nawet systemy wbudowane), więc jest idealne do „ szybkiego i tymczasowego przesyłania plików ”.Krok 1, po stronie odbiornika, uruchom:
to nasłuchuje na porcie 12345, czekając na dane.
Krok 2, po stronie nadawcy:
Możesz także umieścić
pv
w środku, aby monitorować postęp przesyłania:Po zakończeniu przenoszenia obie strony
nc
automatycznie zakończą pracę i zadanie wykonane.źródło
tar
inc
dostępnymi. A jeśli to okna?Dla użytkowników pyftpdlib. Znalazłem to na stronie pyftpdlib. Tworzy to anonimowe ftp z prawem zapisu do twojego systemu plików, więc używaj z należytą ostrożnością. Więcej funkcji jest dostępnych pod maską dla większego bezpieczeństwa, więc po prostu spójrz:
Może być pomocne dla tych, którzy próbowali zastosować powyższą przestarzałą metodę.
sudo python -m pyftpdlib.ftpserver
źródło
sudo
jeśli zainstalujesz w venvpip3 install pyftpdlib
ipython3 -m pyftpdlib -w
. zadziałało dla mnie jak urok.Zainstalować:
Następnie kod:
Wejdź głębiej:
http://twistedmatrix.com/documents/current/core/examples/
źródło
Prostszym rozwiązaniem będzie biblioteka użytkownika pyftpd. Ta biblioteka umożliwia uruchomienie serwera FTP Python w jednej linii. Nie jest jednak instalowany domyślnie, ale możemy go zainstalować za pomocą prostego polecenia apt
teraz z katalogu, który chcesz obsługiwać, po prostu uruchom moduł pythoda
źródło
Nie wiem o jednowierszowym serwerze FTP, ale jeśli wiesz
Uruchomi serwer HTTP na 0.0.0.0:8000, udostępniając pliki z bieżącego katalogu. Jeśli szukasz sposobu na szybkie usunięcie plików z Linux-a za pomocą przeglądarki internetowej, nie możesz tego pokonać.
źródło
źródło