我需要设置一个下载HTTP服务器,我不想安装Apache。
我可以使用 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
}
与木根健一对普拉克的回答相同:
plackup -MPlack::App::Directory -e'Plack::App::Directory->new({ root => "." })->to_app'
这已经解决了David-SkyMesh评论的内容,并且很容易从命令行混合Authn/Authz。一个适合面向互联网的强大预分叉服务器可以通过添加-s Starman
来切换。
您也可以使用 App::HTTPThis。 安装后:
http_this dir_name
可能没有比这容易得多的了。事实上,如果您已经在要导出的目录中,则可以跳过 dir_name 参数。
如评论中所述,这不是一个微不足道的问题。但是,如果我需要一个快速简单的服务器来提供我通常做的文件
python -m SimpleHTTPServer
在我要服务的目录中。它会在0.0.0.0:8000
启动一个网络服务器,您可以将浏览器指向那里下载文件。
我不知道perl是否存在类似的单行解决方案,但我想它没有比这更简单