Basit dosya aktarımı için hangi hafif HTTP veya FTP Sunucusu iyidir? [kapalı]


25

Bu soru, güvensiz bir bilgisayara nasıl dosya kopyalanır? , bu amaç için özel bir uygulama gibi görünmediğinden, alternatif olarak bir http veya ftp sunucusu arıyorum. Daha spesifik olarak, bilgisayarlar arasında basit bir defalık dosya aktarımı için kullanılabilen hafif bir sunucu arıyorum. Bu, klasik bir web sunucusu olarak değil, bir bilgisayardan diğerine dosya almak için rsync / scp yerine davranması gerektiği anlamına geliyor. Ayrıca şunu yapmalı:

  • kullanıcı alanında çalıştırmak
  • yapılandırma konusunda önemsiz olmak (yani hiçbir config dosyası yok, her şey komut satırı üzerinden yapılabilir)
  • destek kullanıcı adı / şifre
  • indirmelerin devam etmesini destekle
  • tüm dizinlerin yerine tekli dosyaların dışa aktarılmasını destekler

dbr'ın önceki soruya cevabı yaklaşıyor, fakat elbette sadece pek çok kullanışlı özelliğe sahip olmayan geçici bir saldırı.


Sadece Apache2'yi, Python SimpleHTTPServer yaklaşık 4x değerinden daha hızlı kullanın.
o0omycomputero0o

Yanıtlar:


31

Sık sık bu hızlı Python kesmesini HTTP üzerinden bir dizin sunmak için kullanıyorum.

python -m SimpleHTTPServer &

geçerli dizine hizmet verecek.

Varsayılan olarak, 8000 numaralı bağlantı noktasına bağlanır.

Başka bir port seçmek için:

python -m SimpleHTTPServer 9090 &

* Nix'te 1024'ten daha düşük bir bağlantı noktası seçerseniz, kök ayrıcalıklarına ihtiyacınız olabilir, aksi takdirde bind () başarısız olur.


3
Bu sorunun neden kapatıldığından emin değilim. Soru ve cevap hem de çok yararlı oldu.
merlin2011

8
Veya Python 3 eşdeğeri:python3 -m http.server
Eliran Malka

6

SO’dan birisi beni Woof’a çekti . Sadece bu tür kullanımlar için optimize edilmiş bir arayüze sahip python'da minimal bir httpd. Gerçekte tüm gereksinimlerinizi karşılamıyor, ancak ne kadar bağlanacağınızı belirtmenize izin vererek, "Hazır mısın? Sunucuya şimdi başlıyorum." transferi güvenceye alma yaklaşımı.

Bir (1) bağlantının thisfile8080 numaralı bağlantı noktasından indirilmesine izin vermek için , yalnızca

$ woof thisfile

Bu kadar kolay.

İşte oldukça kötüye kullanılan orijinal . Eğer hoşuna giderse, Nate'e oy ver.


Ayrıca "yükleme" için de harika çalışıyor (bir sunucunun kendi yükleyemeyen veya yükleyemeyen bir kullanıcıdan bir dosyaya ihtiyacınız olması durumunda)
golimar

3

Ubuntu deposunda mevcut olan webfs'i deneyebilirsiniz :

Webfs (aka webfsd) tamamen statik içerik için basit bir HTTP sunucusudur. Örneğin, bir FTP sunucusunun içeriğini HTTP aracılığıyla sunmak için kullanabilirsiniz. Ayrıca, önce yapılandırma dosyalarını düzenlemeden, birkaç saniye içinde bir httpd sunucusunu başlatarak bazı dosyaları hızlı bir şekilde vermek için kullanılabilir.

Başka bir seçenek de HFS (Http Dosya Sunucusu) , Wine ile iyi çalışan bir Windows uygulaması .

HFS (Http Dosya Sunucusu), dosya gönderip almanızı sağlayan dosya paylaşım yazılımıdır. Bu paylaşımı yalnızca birkaç arkadaşınızla sınırlayabilir veya tüm dünyaya açık olabilirsiniz. HFS, klasik dosya paylaşımından farklıdır çünkü ağ yoktur. [...] Aslında bir web sunucusu olduğundan, arkadaşlarınız bir web tarayıcısını kullanarak bir web sitesinden indirmiş gibi dosyaları indirebilir.


1
Buradaki aşağı oyların nesi var? OP basit http sunucuları istedi ve insanlar onlara teklif etti. Öyleyse sorun ne?
dmckee

HFS aynı zamanda "yükleme" için de harika çalışıyor (bir sunucunun kendi yükleyemeyen veya yükleyemeyen bir kullanıcıdan bir dosyaya ihtiyacınız olması durumunda)
golimar

1

Alternatiflere açık değilseniz, lütfen göz ardı edin, ancak tercihleri ​​olmayan bir HTTP sunucusu kurmaya istekli olduğunuz gerçeği, bana dosya aktarma işini yaptığınızdan daha fazlasını yapmak istediğinizi gösterir -

Bir FTP sunucusu kurmanızı tavsiye edebilir miyim?

İhtiyacınız olan her şeyi hemen hemen yapmanıza izin verecektir ve ayarlanması genellikle çok kolaydır, bu bir zorunluluktursa bağlantı noktasını 80 kullanması için bile yapılandırabilirsiniz.


1
FTP elbette de iyi olurdu, ama tanıdığım çoğu FTP sunucusu tam olarak hafif değil ve bir kerede basit dosya transferleri için uygun olmadıklarını sağlayan çirkin fazladan bir bagajla geliyor (örneğin, kök haklarını gerektirir, makinede şifre erişimi için hesaplar var) , esnek olmayan dizin işleme vb.). Pure-FTPd ile root olmayan bir kullanıcı olarak nasıl başlayacağımı bile bulamadım.
Grumbel

1
Kabul. Buna bir sebeple Dosya Aktarım Protokolü denir. Diğer taraftan, HTTP, Köprü Metni Aktarım Protokolü'dür. Muhtemelen şu an HyperText ile ilgilenmiyorsunuz.
Lee B

1
FTP aptalca bir fikir değil, OP'nin istediği gibi kurması basit bir bataklık için bir öneriniz var mı?
dmckee

1
Http'in avantajı, her genel kullanım bilgisayarında bir web tarayıcısına sahip olması ve kullanıcının onu kullanması konusunda rahat olması. Tamam,
ftp'yi

2
Wil, burada Apache gibi genel amaçlı sunuculardan bahsetmiyoruz. Özel amaçlı, minimal araçlardan bahsediyoruz. Woof chttpd'nin ağır görünmesini sağlar .
dmckee

0

Http://code.google.com/p/pyftpdlib/ adresini tavsiye edebilir miyim?
Bu bir Python komut kaynağını indirebilir ve yazma, ışık ağırlığı var (sadece ana sayfasında hızlı başlangıç kısmıdır kopya yeterli, 5-6 hatları, ayarlanan kullanıcı adı ve şifre, ev dizini vs.)
Ben kişisel olarak kullanabilirsiniz PC'den PC'ye dosya aktarımı (On Ubuntu Hardy). Bilinen bir sorun (ve buna katlanabiliyorum) Unicode'u (ASCII olmayan) iyi idare edememesidir.


0

Cevap basit: thttpd. Performans, bellek kullanımı ve güvenlik konularında başarı kazanıyor. Ve güvenlikten kasıtlı tasarım sayesinde güvenli ve aptalca bir şey yapmamak, her türlü “güvenlik” ziline ve ıslıkına sahip olmasından kastediyorum. Ayrıca, boyut ve sadelik açısından da en uygun seviyeye sahiptir.

Daha küçük ve daha basit ihtiyacınız varsa, BusyBox httpdihtiyaçlarınızı da karşılayabilecek bir uygulamaya sahiptir.

Tekli dosyalar sunmak gibi daha fazla gereksinimlerinizi karşıladıklarından emin değilim, ancak bunu http köküne sembolik bağlantılar ekleyen bir sarmalayıcıyla yapabilirsiniz. Ancak bunu thttpd ile yaparsanız, sembolik bağlantı kısıtlamalarını devre dışı bırakmanız gerekir.

(Bu sorunun eski olduğunu biliyorum, ancak bu Google’ın en iyi sonucudur ve mevcut cevaplar hafif olmaktan başka bir şey değildir.)


2
thttpdbenim de en sevdiğim cevabımdı, ancak 2011'de Debian, Ubuntu ve RedHat'tan çıkarıldı , çünkü “artık, serbest bırakılan kritik hatalar var ve memba ölüyor”. Artık tavsiye etmem.
poolie

0

Ayrıca HFS'yi HTTP Dosya Sunucusu ( http://www.rejetto.com/hfs/ ) olarak da deneyebilirsiniz. Windows uygulaması olsa da WINE kullanarak iyi çalıştığı söylenir. Çok düşük bakımı ve hatta bir Dosya Sunucusunun ne kadar çaba harcayamayacağını bile bilmeyen acemiler bile. Sürükle ve bırak işlevini destekler ve hangi IP adreslerinin dosyalara erişebileceğini ve kullanıcıların hesaplarını ve indirme hızı kontrolünü destekleyebileceğini bile kontrol edebilirsiniz.


1
Bu soruya nasıl cevap veriyor? Daha spesifik ol.
kullanıcı 99572,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.