我可以使用 HTTP::Server::Simple 作为下载 http 服务器吗?



我需要设置一个下载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是否存在类似的单行解决方案,但我想它没有比这更简单

的了。

最新更新