在Perl中构建文件下载器需要什么?

时间:2010-01-19 10:02:42

标签: perl file download terminal

我正在使用Perl中的文件下载器(终端上的UNIX / Mac OS X)。我实际上正在搜索可以处理校验和验证,进度条以及CPAN库本身使用的实际库的库。您可以推荐哪些图书馆和地方?可能有一些我不知道的完成的东西吗?

更详细:

  1. 使用进度条下载文件
  2. 记录所有采取的行动
  3. 文件校验和验证
  4. 读取和解析配置文件(例如:YAML格式)
  5. 将结果发送到网络服务

4 个答案:

答案 0 :(得分:7)

CPAN是寻找支持模块的主要场所。如果你想在Perl中这样做,很可能有人已经完成了它。

例如,根据您的要求:

答案 1 :(得分:2)

不要错过LWP。具体来说,LWP :: Simple可能是您开始使用的大部分内容。对于校验和,HTTP标头等,您可能需要完整的LWP用户代理。

答案 2 :(得分:0)

不幸的是,你真的要使用POE目前..具体来说,你需要使用POE::Component::Client::HTTP(用于(保活)POE::Component::Server::HTTP::KeepAlive池),大概多了一些组件。我刚刚完成这个任务我必须每天(在SQL中)通过他们的url的sha1下载150k照片,调整它们的大小,将它们散列到图像的SHA1并将其硬链接到url的sha1,并更新数据库显示图像的sha1和下载的日期。我用POE做了所有这些。而且,除了一些我可能永远无法修复的难以调试的怪癖,以及随机的POE核心转储,它的效果相当不错。

我们为第三方分支机构提供了一个更简单的图像下载器,它通过VIN行获取CSV中标识的图像,下载图像,并将其重命名为vin连字符[1..n]。你可以找到它on github。它使用Parallel::ForkMangaer这是另一种解决方案,但使用它的本质消除了KA,并且使用POE可以很容易地获得它。

我强烈建议不要滚动自己的线程解决方案,历史告诉我们这些通常是最差的。

答案 3 :(得分:0)

请查看CPAN::Checksums以了解CPAN用于在每个作者目录中创建 CHECKSUMS 文件的内容。