HTTP atau FTP Server ringan mana yang baik untuk transfer file sederhana? [Tutup]

25

Pertanyaan ini merupakan tindak lanjut dari Bagaimana cara menyalin file ke komputer yang tidak terpercaya? , karena sepertinya tidak ada aplikasi khusus untuk tujuan ini, saya sekarang mencari server http atau ftp sebagai alternatif. Lebih khusus lagi saya mencari server yang ringan yang dapat digunakan untuk transfer file satu kali yang sederhana antar komputer. Maksud saya itu harus bertindak sebagai pengganti rsync / scp untuk mendapatkan file dari satu komputer ke komputer lain, bukan sebagai server web klasik. Selain itu harus:

  • dijalankan di userspace
  • sepele untuk mengkonfigurasi (yaitu tidak ada file konfigurasi, semuanya dapat dilakukan melalui baris perintah)
  • mendukung nama pengguna / kata sandi
  • mendukung kelanjutan unduhan
  • mendukung ekspor file tunggal, bukan seluruh direktori

jawaban dbr untuk pertanyaan sebelumnya semakin dekat, tetapi tentu saja hanya hack ad hoc yang tidak memiliki banyak fitur yang berguna.

Grumbel
sumber
Cukup gunakan Apache2 lebih cepat daripada python SimpleHTTPServer sekitar 4x.
o0omycomputero0o

Jawaban:

31

Saya sering menggunakan hack Python cepat ini untuk melayani direktori melalui HTTP.

python -m SimpleHTTPServer &

akan melayani direktori saat ini.

Secara default, ini mengikat ke port 8000.

Untuk memilih port lain:

python -m SimpleHTTPServer 9090 &

Jika Anda memilih port yang lebih rendah dari 1024 pada * nix, Anda mungkin perlu hak akses root, jika tidak mengikat () akan gagal.

kutu buku
sumber
3
Benar-benar tidak yakin mengapa pertanyaan ini ditutup. Pertanyaan dan jawabannya sama-sama sangat berguna.
merlin2011
8
Atau setara dengan Python 3:python3 -m http.server
Eliran Malka
6

Seseorang di SO menunjuk saya ke Woof . Httpd minimal dalam python dengan antarmuka yang dioptimalkan hanya untuk penggunaan seperti itu. Sebenarnya tidak memenuhi semua persyaratan Anda, tetapi dengan memungkinkan Anda menentukan berapa kali itu akan terhubung memungkinkan Anda untuk menggunakan "Apakah Anda siap? Saya memulai server sekarang." pendekatan untuk mengamankan transfer.

Untuk mengizinkan satu (1) koneksi untuk diunduh thisfilepada port 8080, Anda cukup menjalankan

$ woof thisfile

Sangat mudah.

Ini adalah aslinya yang agak disalahgunakan . Jika Anda suka, pilih Nate.

dmckee
sumber
Juga berfungsi baik untuk "mengunggah" (jika Anda membutuhkan file dari pengguna yang tidak dapat atau tidak akan menginstal server sendiri)
golimar
3

Anda dapat mencoba webfs yang tersedia melalui repositori Ubuntu:

Webfs (alias webfsd) adalah server HTTP sederhana untuk konten yang murni statis. Anda dapat menggunakannya untuk menyajikan konten server FTP melalui HTTP, misalnya. Ini juga dapat digunakan untuk mengekspor beberapa file dengan cepat dengan memulai server httpd dalam beberapa detik, tanpa mengedit file konfigurasi terlebih dahulu.

Pilihan lain adalah HFS (Http File Server) , aplikasi Windows yang berfungsi baik melalui Wine .

HFS (Http File Server) adalah perangkat lunak berbagi file yang memungkinkan Anda untuk mengirim dan menerima file. Anda dapat membatasi berbagi ini hanya dengan beberapa teman, atau terbuka untuk seluruh dunia. HFS berbeda dari berbagi file klasik karena tidak ada jaringan. [...] Karena ini sebenarnya adalah server web, teman Anda dapat mengunduh file seolah-olah mereka mengunduh dari situs web menggunakan browser web.

Nagul
sumber
1
Ada apa dengan suara turun di sini? OP meminta server http sederhana, dan orang-orang telah menawarkannya. Jadi apa masalahnya.
dmckee
HFS juga berfungsi baik untuk "mengunggah" (jika Anda membutuhkan file dari pengguna yang tidak dapat atau tidak akan menginstal server sendiri)
golimar
1

Tolong abaikan jika Anda tidak terbuka untuk alternatif, tetapi kenyataan bahwa Anda bersedia untuk menginstal server HTTP tanpa preferensi menunjukkan kepada saya bahwa Anda ingin menyelesaikan pekerjaan mentransfer file lebih dari bagaimana melakukannya -

Bolehkah saya merekomendasikan Anda menginstal server FTP?

Ini akan memungkinkan Anda melakukan hampir semua yang Anda butuhkan dan biasanya sangat mudah diatur, Anda bahkan dapat mengkonfigurasi port untuk menggunakan 80 jika itu merupakan persyaratan.

William Hilsum
sumber
1
FTP tentu saja juga akan baik-baik saja, tetapi sebagian besar server FTP yang saya tahu tidak terlalu ringan dan dilengkapi dengan banyak bagasi ekstra jelek yang membuatnya tidak layak untuk satu kali transfer file sederhana (yaitu memerlukan hak root, akun pada mesin untuk akses kata sandi) , penanganan direktori yang tidak fleksibel, dll.). Dengan Pure-FTPd saya bahkan tidak tahu bagaimana memulainya sebagai pengguna non-root.
Grumbel
1
Sepakat. Ini disebut Protokol Transfer File karena suatu alasan. HTTP, di sisi lain, adalah HyperText Transfer Protocol. Kemungkinan Anda tidak tertarik dengan HyperText sekarang.
Lee B
1
FTP bukan ide yang bodoh, tetapi apakah Anda memiliki saran untuk hal yang sederhana untuk diatur seperti yang diminta OP?
dmckee
1
Keuntungan dari http adalah bahwa setiap komputer yang umum digunakan memiliki browser web di atasnya, dan pengguna akan merasa nyaman menggunakannya. OK, itu mendukung ftp juga, tetapi jika Anda akan menggunakan browser web ...
dmckee
2
Wil, kita tidak berbicara tentang server tujuan umum seperti Apache di sini. Kita sedang berbicara tentang tujuan khusus, alat minimal. Pakan membuat chttpd terlihat berat .
dmckee
0

Bolehkah saya merekomendasikan http://code.google.com/p/pyftpdlib/ ?
Ini ringan, unduh sumbernya, dan tulis skrip Python (cukup salin bagian mulai cepat di beranda sudah cukup, 5-6 baris, tetapkan nama pengguna dan kata sandi, direktori rumah, dll.)
Saya menggunakannya untuk pribadi transfer file pc ke pc (Di Ubuntu Hardy). satu masalah yang diketahui (dan saya tahan) adalah tidak dapat menangani Unicode (non-ASCII) dengan baik.

sunqiang
sumber
0

Jawabannya sederhana: thttpd. Ia menang dalam performa, penggunaan memori, dan keamanan. Dan maksud saya, keamanan itu aman berdasarkan desain yang kompeten dan tidak melakukan hal bodoh, bukan karena memiliki semua jenis bel dan peluit "keamanan". Ini juga hampir optimal sehubungan dengan ukuran dan kesederhanaan.

Jika Anda membutuhkan yang lebih kecil dan sederhana, BusyBox memiliki httpdapplet yang mungkin juga memenuhi kebutuhan Anda.

Saya tidak yakin apakah mereka memenuhi beberapa persyaratan Anda yang lebih banyak seperti melayani file tunggal, tetapi Anda dapat melakukannya dengan pembungkus yang menempatkan symlink di root http. Namun, jika Anda melakukan ini dengan thttpd, Anda harus menonaktifkan pembatasan symlink.

(Saya tahu pertanyaan ini sudah lama, tetapi ini adalah hasil teratas di Google dan jawaban yang ada sama sekali ringan.)

R ..
sumber
2
thttpddulu jawaban favorit saya juga, tetapi itu dihapus dari Debian, Ubuntu, dan RedHat pada 2011 karena itu "yatim piatu, memiliki bug rilis-kritis , dan sudah mati hulu." Saya tidak akan merekomendasikan itu lagi.
poolie
0

Anda juga dapat mencoba HFS yang juga disebut HTTP File Server ( http://www.rejetto.com/hfs/ ). Meskipun ini adalah aplikasi windows, dikatakan bekerja dengan baik menggunakan WINE. Pemeliharaannya sangat rendah dan bahkan pemula lengkap yang bahkan tidak tahu apa File Server akan dapat menggunakannya tanpa banyak usaha. Ini mendukung fungsionalitas drag and drop dan Anda bahkan dapat mengontrol alamat IP mana yang dapat mengakses file dan mendukung akun pengguna dan kontrol kecepatan unduh.

TenaciousD
sumber
1
Bagaimana itu menjawab pertanyaan? Lebih spesifik.
pengguna 99572 baik-baik saja