HTTP-сервер Bare Bones для Linux с возобновляемой загрузкой файлов

5

У меня есть пользователь Windows, с которым я хочу поделиться большим файлом, у него есть Firefox, который, как я понимаю, поддерживает возобновляемую загрузку файлов HTTP, и у меня Ubuntu Linux, но ограниченное дисковое пространство и тому подобное, поэтому я не хочу полноценного решения, такого как Веб-сервер Apache.

Я хотел бы просто запустить сервер через командную строку или графический интерфейс, когда я хочу, а не при загрузке.

Если я могу избежать этого, я не хочу редактировать файл конфигурации - я бы просто дал аргумент командной строки для его порта, я привык использовать python -m SimpleHTTPServer - но я не думаю, что это возобновляемая.

Люк Стэнли
источник
"поделиться ... файлом" - Итак ... вы хотите передать файл, а, и вы не хотите использовать протокол передачи файлов, почему?
ta.speot.is
2
Я не нахожу здесь полезность имен, нет ничего плохого в желании использовать браузер для загрузки файла, тем более что конечному пользователю это удобно. Не понимаете, что должно быть сложным или проблематичным в работе возобновляемого HTTP-сервера?
Люк Стэнли
У меня есть частичный ответ, который я могу опубликовать через ~ 6 часов (респ <100): pastebin.com/DS0wedwk
Люк Стэнли,
@ todda.speot.is: возможно, потому что FTP небезопасен и посылает пароль по сети.
n0pe
2
Главным образом это потому, что простота для конечных пользователей является королем.
Люк Стэнли

Ответы:

10

Используйте thttpd .

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

Каталог /home/bob/sharedfolderстанет доступным по адресу .http://address:8080

снимок экрана со списком каталогов thttpd в Chrome, показывающий localhost на порту 8080


lighttpd можно использовать аналогичным образом, хотя для этого требуется небольшой конфигурационный файл. Например:

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

который затем запускается так:

lighttpd -f foo.conf
grawity
источник
Спасибо, спасибо, я сделал некоторые правки. Был бы признателен за некоторые вопросы.
Люк Стэнли
даже python -m SimpleHTTPServer 8000должно хватить ... :)
Акира
@akira: SimpleHTTPServerне поддерживает диапазоны байтов, то есть не может возобновить прерванные передачи. Тест с curl http://localhost:8000/testfile -o /dev/null -C 100, например.
Гравитация
Это именно то, что мне было нужно, сейчас я использую lighttpd, и он отлично работает.
Роб
@ Grawity: правда. но это в сторону: может быть жизнеспособным вариантом. отсутствует диапазон байтов: вот почему я только отложил его в сторону, а не как отдельный ответ.
Акира
3

Недавно я создал модуль Python ext_http_server, который расширяет функциональные возможности SimpleHTTPServerмодуля. Одной из его функций является возобновляемая загрузка файлов, помимо https, аутентификации и ограничения скорости.

Вот прямая ссылка на инструкции по установке и использованию.

Я должен сказать, что lighttpd содержит все те же функциональные возможности, так что если вы ищете что-то готовое для производства, используйте lighttpd. Если вы ищете в Python что-то, что вы можете легко собрать, проверьте ext_http_server.

bboe
источник
это звучит здорово!
Люк Стэнли
На самом деле я использовал это для чего-то, но я не хотел ограничения скорости, https или user / pass, поэтому немного многословно указывать то, что я хотел: ext_http_server --cert /home/luke/Downloads/cert.pem -d. -p 9191 -a тест: test -r 999999999999999
Люк Стэнли
Исполняемый файл по умолчанию в созданном пакете должен иметь все эти функции. Немного поработав, вы можете создать свой собственный исполняемый файл (скрипт), который имеет только возобновляемые загрузки. Однако в этом случае, вероятно, будет быстрее использовать thttpd или lighttpd.
bboe
Да, возможно, стоит рассмотреть простой режим или простой режим по умолчанию. Хорошая работа, хотя, конечно.
Люк Стэнли
1

Используйте Lighttpd - вы используете Linux, так что я думаю, что вы знакомы с тренировкой! Поместите файл, которым вы хотите поделиться, в папку / var / www. Измените файл init.d conf, чтобы удалить Lighttpd из демонов загрузки.

Lighttpd делает все, что вы хотите, и даже больше - и, это не маленький, его крошечный! ;)

adeelx
источник
Да, я уже использовал Monkey. Произвольная разница возможно. Смотрите: pastebin.com/DS0wedwk, но я ищу решение для файла конфигурации 0, если это возможно :)
Люк Стэнли
lighttpd, похоже, не поддерживает диапазоны байтов, если я загружаю файл с curl, который я получаю: HTTP-сервер не поддерживает диапазоны байтов
Зибри,