2012-04-09 11 views
0

ダウンロードHTTPサーバーをセットアップする必要があります。私はApacheをインストールしたくありません。ダウンロードHTTPサーバーとしてHTTP :: Server :: Simpleを使用できますか?

HTTP::Server::Simpleをダウンロード用httpサーバーとして使用できますか?サンプルコードを教えてください。

他のCPANモジュールがダウンロードHTTPサーバーを迅速かつ簡単にセットアップするのに役立つでしょうか?

sub download { 
my $cgi = shift; # CGI.pm object 
return if !ref $cgi; 

my $file = $cgi->param('file'); #file=test.tar.gz 
$file="/var/download/$file"; #file=/var/download/test.tar.gz 

# send this file 
} 
+3

Apache(またはnginxなど)をインストールしないのはなぜですか?認証、認可、ファイルシステム関連のエラー、Webroot、ディレクトリトラバーサル、Unicodeマッピングなどを考慮した場合、「httpサーバのダウンロード」は非常に複雑です。本当に極端な状況で自分自身を実装することをお勧めします。 –

+1

さらに、スレッド/フォークを実行しないため、同時リクエストに対応できないため、やりたくないでしょう。 –

+0

友人のためにちょうど一時的な使用のためです。私は認証など気にしません... – everbox

答えて

-1

コメントに記載されているとおり、これは問題ではありません。しかし、ファイルを提供するのに素早く簡単なサーバーが必要な場合は、

python -m SimpleHTTPServer 

私が奉仕したいディレクトリにあります。それは0.0.0.0:8000でWebサーバーを起動し、そこにあなたのブラウザがファイルをダウンロードするように指示することができます。

私は、同じような1行のソリューションがperlに存在するかどうかはわかりませんが、それ以上は簡単ではないと思います。

+0

ああ、下降者が親切にコメントを残してくれたら。私はpythonの行で 'perl'というタグの付いた質問に答えたので、それは否定的ではないと思いますか? –

+0

まさに私が欲しいもの! – everbox

4

Plackと無限賢一の答えと同じ:

plackup -MPlack::App::Directory -e'Plack::App::Directory->new({ root => "." })->to_app' 

これは、すでにデビッド・SkyMeshがコメント物事の世話をする、そしてコマンドラインからAuthn /のauthzでミックスするのは非常に簡単です。 -s Starmanを追加することで、インターネットに直面するのに適した堅牢なプリフォークサーバを切り替えることができます。

+0

私はそれが好きです。唯一の欠点は、まずモジュールをインストールする必要があることです。 –

2

App::HTTPThisも使用できます。インストール後:

http_this dir_name 

恐らくそれよりはるかに簡単です。実際に、エクスポートするディレクトリにすでに入っている場合は、dir_name引数をスキップできます。

関連する問題