Frage Bare-Bones-HTTP-Server für Linux mit fortsetzbaren Dateidownloads


Ich habe einen Windows-Benutzer, mit dem ich eine große Datei teilen möchte, sie haben Firefox mit ich verstehe Unterstützungen wiederaufnehmbare HTTP-Dateidownloads, und ich habe Ubuntu Linux, aber begrenzten Speicherplatz und so, also möchte ich nicht eine vollständige Lösung wie Der Webserver von Apache.

Ich möchte den Server einfach über die Befehlszeile oder GUI ausführen, wenn ich will, nicht beim Booten.

Wenn ich es vermeiden kann, möchte ich keine Konfigurationsdatei bearbeiten - ich würde lieber nur ein Kommandozeilenargument für den Port geben, ich bin es gewöhnt python -m SimpleHTTPServer zu benutzen - aber ich denke nicht, dass es das ist wiederaufnehmbar.


4
2017-07-07 08:06


Ursprung


"share a ... file" - Also ... willst du eine Datei übertragen eh, und du willst das FILE TRANSFER PROTOCOL nicht benutzen warum? - ta.speot.is
Ich finde den Namen-Ismus hier nicht nützlich, es ist nichts falsch daran, einen Browser zum Herunterladen einer Datei zu verwenden, besonders da der Endbenutzer damit vertraut ist. Sehen Sie nicht, was komplex oder problematisch sein sollte, wenn Sie einen wiederaufsetzbaren HTTP-Server ausführen, oder? - Luke Stanley
Ich habe eine Teilantwort, die ich in ~ 6 Stunden veröffentlichen kann (rep <100): pastebin.com/DS0wedwk - Luke Stanley
@ todda.speot.is: Vielleicht, weil FTP unsicher ist und Passwort über das Netzwerk sendet. - n0pe
Hauptsächlich deshalb, weil die Einfachheit für den Endverbraucher der König ist. - Luke Stanley


Antworten:


Benutzen thttpd.

thttpd -d /home/bob/sharedfolder -p 8080

Das Verzeichnis /home/bob/sharedfolder würde zugänglich werden bei http://Adresse:8080.

screenshot of thttpd directory listing in Chrome showing localhost on port 8080


Lichttpd kann in ähnlicher Weise verwendet werden, obwohl es ein benötigt sehr klein Konfigurationsdatei. Beispielsweise:

server.document-root = "/home/bob/sharedfolder"
server.port          = 8080
dir-listing.activate = "enable"

was dann so läuft:

lighttpd -f foo.conf

9
2017-07-07 11:31



Dankeschön, ich habe ein paar Änderungen vorgenommen. Würde mich über einige Fragen freuen. - Luke Stanley
sogar python -m SimpleHTTPServer 8000 sollte genug sein ... :) - akira
@akira: SimpleHTTPServer unterstützt keine Byte-Bereiche, dh abgebrochene Übertragungen können nicht fortgesetzt werden. Test mit curl http://localhost:8000/testfile -o /dev/null -C 100, beispielsweise. - grawity
Dies ist genau das, was ich brauchte, jetzt mit lighttpd und es funktioniert großartig. - Rob
@ Grawity: wahr. aber das beiseite: könnte eine praktikable Option sein. fehlender Bytebereich: Deshalb lege ich ihn nur zur Seite und nicht als eigenständige Antwort. - akira


Ich habe vor kurzem ein Python-Modul erstellt, ext_http_server, das erweitert die Funktionalität des SimpleHTTPServerModul. Eine seiner Funktionen ist das Wiederaufnehmen von Dateien, zusätzlich zu https, Authentifizierung und Ratenbegrenzung.

Hierist ein direkter Link zu den Installations- und Gebrauchsanweisungen.

Ich sollte sagen, dass Lighttpd alle die gleiche Funktionalität enthält, wenn Sie also etwas produktionsfertiges suchen, gehen Sie mit lighttpd. Wenn Sie etwas in Python verwenden möchten, das Sie einfach aufbauen können, sollten Sie es ausprobieren ext_http_server.


3
2017-08-26 10:59



Das hört sich cool an! - Luke Stanley
Ich habe das tatsächlich für etwas verwendet, aber ich wollte keine Ratenbegrenzung, https oder user / pass, daher ist es ein wenig wortreich, Befehle für das zu geben, was ich wollte: ext_http_server --cert /home/luke/Downloads/cert.pem -d. -p 9191 -a Test: Test -r 999999999999999 - Luke Stanley
Die Standard-ausführbare Datei in dem erstellten Paket soll alle diese Funktionen enthalten. Mit ein wenig Arbeit könnten Sie Ihre eigene ausführbare Datei (Skript) erstellen, die nur die fortsetzbaren Downloads enthält. In diesem Fall ist es jedoch wahrscheinlich schneller, thttpd oder lighttpd zu verwenden. - bboe
Ja, es könnte sich lohnen, einen einfachen Modus oder einen einfachen Modus als Standard zu betrachten. Gute Arbeit natürlich. - Luke Stanley


Benutzen Lichttpd - Sie benutzen Linux, also sind Sie mit der Übung vertraut! Legen Sie die Datei, die Sie freigeben möchten, in den Ordner / var / www Ändern Sie die zu löschende init.d.conf-Datei Lichttpd von Boot-Dämonen.

Lighttpd tut alles, was du willst und mehr - und es ist nicht klein, es ist winzig! ;)


1
2017-07-07 09:31



Ja, ich habe Monkey schon benutzt. Willkürlicher Unterschied vielleicht. Sehen: pastebin.com/DS0wedwk  aber ich suche nach einer 0 config file Lösung wenn möglich :) - Luke Stanley