Apakah mungkin memiliki perintah satu baris dengan python untuk melakukan server ftp sederhana? Saya ingin dapat melakukan ini sebagai cara cepat dan sementara untuk mentransfer file ke kotak linux tanpa harus menginstal server ftp. Lebih disukai cara menggunakan pustaka python bawaan sehingga tidak ada tambahan untuk dipasang.
python
ftp
ftp-server
zio
sumber
sumber
-o Ciphers=arcfour
, yaitusshfs $REMOTEHOST:$DIRECTORY $MOUNTPOINT -o Ciphers=arcfour
dan salin, pindahkan, ganti nama, kelola file Anda di sistem file Anda. sshfs juga tersedia untuk Mac OSX.Jawaban:
Contoh Obligatory Twisted :
Dan mungkin berguna:
sumber
Lihat pyftpdlib dari Giampaolo Rodola. Ini adalah salah satu server ftp terbaik di luar sana untuk python. Ini digunakan di google's chromium (browser mereka) dan bazaar (sistem kontrol versi). Ini adalah implementasi paling lengkap pada Python untuk RFC-959 (alias: spesifikasi implementasi server FTP).
Dari baris perintah:
Atau 'my_server.py':
Ada lebih banyak contoh di situs web jika Anda menginginkan sesuatu yang lebih rumit.
Untuk mendapatkan daftar opsi baris perintah:
Catatan, jika Anda ingin mengganti atau menggunakan port ftp standar, Anda memerlukan hak admin (misalnya sudo).
sumber
>>> from pyftpdlib import ftpserver
:pyftpdlib\ftpserver.py:54: DeprecationWarning: pyftpdlib.ftpserver module is deprecated
Mengapa Anda tidak menggunakan server HTTP satu baris ?
akan menyajikan konten direktori kerja saat ini melalui HTTP pada port 8000.
Jika Anda menggunakan Python 3, Anda harus menulis
Lihat dokumen modul SimpleHTTPServer untuk 2.x dan dokumen http.server untuk 3.x.
Omong-omong, dalam kedua kasus, parameter port bersifat opsional.
sumber
Jawaban di atas semuanya mengasumsikan distribusi Python Anda akan memiliki beberapa pustaka pihak ketiga untuk mencapai tujuan "one liner python ftpd", tetapi itu bukan kasus yang ditanyakan @zio. Selain itu, SimpleHTTPServer melibatkan web broswer untuk mengunduh file, ini tidak cukup cepat.
Python tidak dapat melakukan ftpd dengan sendirinya, tetapi Anda dapat menggunakan netcat ,
nc
:nc
pada dasarnya adalah alat bawaan dari semua sistem mirip UNIX (bahkan sistem tertanam), jadi sangat cocok untuk "cara cepat dan sementara untuk mentransfer file ".Langkah 1, di sisi penerima, jalankan:
ini akan mendengarkan pada port 12345, menunggu data.
Langkah 2, di sisi pengirim:
Anda juga dapat meletakkan
pv
di tengah untuk memantau kemajuan transfer:Setelah transfer selesai, kedua sisi
nc
akan berhenti secara otomatis, dan pekerjaan selesai.sumber
tar
dannc
tersedia. Bagaimana jika itu jendela?Untuk pengguna pyftpdlib. Saya menemukan ini di situs web pyftpdlib. Ini menciptakan ftp anonim dengan akses tulis ke sistem berkas Anda, jadi gunakanlah dengan hati-hati. Lebih banyak fitur tersedia di balik terpal untuk keamanan yang lebih baik, jadi lihat saja:
Mungkin berguna bagi mereka yang mencoba menggunakan metode usang di atas.
sudo python -m pyftpdlib.ftpserver
sumber
sudo
jika Anda menginstal di venvpip3 install pyftpdlib
danpython3 -m pyftpdlib -w
. Bekerja seperti pesona bagi saya.Install:
Lalu kodenya:
Dapatkan lebih dalam:
http://twistedmatrix.com/documents/current/core/examples/
sumber
Solusi yang lebih sederhana adalah menggunakan pustaka pyftpd pengguna. Perpustakaan ini memungkinkan Anda untuk memutar server FTP Python dalam satu baris. Itu tidak terinstal secara default, tetapi kita dapat menginstalnya menggunakan perintah apt
sekarang dari direktori yang ingin Anda layani jalankan saja modul pythod
sumber
Saya tidak tahu tentang server FTP satu baris, tetapi jika Anda tahu
Ini akan menjalankan server HTTP di 0.0.0.0:8000, melayani file dari direktori saat ini. Jika Anda sedang mencari cara untuk mengeluarkan file dari kotak linux dengan browser web dengan cepat, Anda tidak bisa mengalahkannya.
sumber
sumber