25

Этот вопрос является продолжением Как скопировать файлы на ненадежный компьютер? Поскольку для этой цели, похоже, нет специального приложения, я сейчас ищу альтернативный вариант для http или ftp-сервера. В частности, я ищу легкий сервер, который можно использовать для простой однократной передачи файлов между компьютерами. Под этим я подразумеваю, что он должен действовать как замена rsync/scp для передачи файлов с одного компьютера на другой, а не как классический веб-сервер. Кроме того, он должен:

  • запустить в пространстве пользователя
  • быть тривиальным в настройке (т.е. без конфигурационного файла, все выполнимо через командную строку)
  • поддержка имени пользователя / пароля
  • поддержка продолжения загрузок
  • поддержка экспорта отдельных файлов вместо целых каталогов

Ответ dbr на предыдущий вопрос близок, но, конечно, это просто специальный взлом, в котором отсутствуют многие полезные функции.

7 ответов7

31

Я часто использую этот быстрый взлом Python, чтобы обслуживать каталог по HTTP.

python -m SimpleHTTPServer &

будет обслуживать текущий каталог.

По умолчанию он привязывается к порту 8000.

Чтобы выбрать другой порт:

python -m SimpleHTTPServer 9090 &

Если вы выберете порт ниже 1024 для * nix, вам могут потребоваться права root, иначе bind() завершится с ошибкой.

6

Кто-то на ТАК указал мне на Гав. Минимальный httpd в python с интерфейсом, оптимизированным как раз для таких целей. Он на самом деле не отвечает всем вашим требованиям, но, позволяя вам указать, сколько раз он будет подключаться, он позволяет использовать «Готовы ли вы? Я сейчас запускаю сервер. »Подход к защите передачи.

Чтобы разрешить одному (1) соединению загружать thisfile файл через порт 8080, вы просто запускаете

$ woof thisfile

Это так просто.

Вот довольно злоупотребленный оригинал. Если тебе это нравится, иди голосуй за Нейта.

3

Вы можете попробовать webfs, который доступен через репозиторий Ubuntu:

Webfs (он же webfsd) - простой HTTP-сервер для чисто статического контента. Вы можете использовать его, например, для передачи содержимого FTP-сервера по HTTP. Его также можно использовать для быстрого экспорта некоторых файлов, запустив сервер httpd за несколько секунд без предварительного редактирования файлов конфигурации.

Другой вариант - HFS (Http File Server), приложение для Windows, которое хорошо работает через Wine.

HFS (Http File Server) - это программа для обмена файлами, которая позволяет отправлять и получать файлы. Вы можете ограничить это совместное использование всего несколькими друзьями или быть открытым для всего мира. HFS отличается от классического обмена файлами, потому что нет сети. [...] Поскольку это на самом деле веб-сервер, ваши друзья могут загружать файлы, как если бы они загружали с веб-сайта с помощью веб-браузера.

1

Пожалуйста, игнорируйте, если вы не открыты для альтернатив, но тот факт, что вы хотите установить HTTP-сервер без каких-либо предпочтений, показывает мне, что вы хотите выполнить работу по передаче файла больше, чем как это делается -

Могу ли я порекомендовать вам установить FTP-сервер?

Это позволит вам в значительной степени делать все, что вам нужно, и, как правило, его очень легко настроить, вы даже можете настроить порт на использование 80, если это требуется.

0

Ответ прост: thttpd . Он выигрывает в производительности, использовании памяти и безопасности. И под безопасностью я подразумеваю, что она безопасна благодаря грамотному замыслу и не делает ничего глупого, не то чтобы у нее были всевозможные "защитные" навороты. Это также почти оптимально по размеру и простоте.

Если вам нужно еще меньше и проще, у BusyBox есть апплет httpd который также может удовлетворить ваши потребности.

Я не уверен, что они удовлетворяют некоторым вашим требованиям, таким как обслуживание отдельных файлов, но вы можете сделать это с помощью оболочки, которая помещает символические ссылки в корень http. Однако, если вы сделаете это с thttpd, вам придется отключить ограничения символической ссылки.

(Я знаю, что этот вопрос старый, но это лучший результат в Google, и существующие ответы совсем не легки.)

0

Вы также можете попробовать HFS, также называемую HTTP File Server ( http://www.rejetto.com/hfs/). Хотя это приложение для Windows, говорят, что оно хорошо работает с использованием WINE. Его очень низкие эксплуатационные расходы и даже полные новички, которые даже не знают, что такое файловый сервер, смогут использовать его без особых усилий. Он поддерживает функцию перетаскивания, и вы даже можете контролировать, какие IP-адреса могут обращаться к файлам, поддерживает учетные записи пользователей и контроль скорости загрузки.

0

Могу ли я порекомендовать http://code.google.com/p/pyftpdlib/ ?
Это легковесно, загрузите исходный код и напишите скрипт на Python (достаточно просто скопировать часть быстрого запуска на домашней странице, 5-6 строк, задать имя пользователя и пароль, домашний каталог и т.д.)
Я использую его для передачи файлов с персонального компьютера на компьютер (на Ubuntu Hardy). одна известная проблема (и я могу с этим смириться) заключается в том, что она не может хорошо обрабатывать Unicode (не ASCII).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .