2010-01-19 19 views
1

我正在使用Perl的文件下载器(终端上的UNIX/Mac OS X)。我实际上在寻找可以处理校验和验证,进度条和CPAN库本身使用的实际工作的库。你可以推荐哪些图书馆和地方?有没有可能是我不知道的一些完成的东西?我需要在Perl中构建文件下载器?

更详细:

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

回答

7

CPAN是寻找支持模块的主要地方。如果你想用Perl来做,很可能有人已经完成了它。

例如,对于您的要求:

+0

Term :: ProgressBar是一个很好的指针,谢谢。我实际上正在寻找更完整的软件包或库,它们已经部分具有此功能。我相信那里有东西... – z3cko 2010-01-19 10:13:22

+1

你在用什么下载? HTTP? FTP?还有别的吗? 您可以使用wget或类似的东西作为包含进度条等的预建包吗? 您也可以解释“将结果发送到Web服务”吗? – mopoke 2010-01-19 10:17:09

+0

它应该是通用的。我想开发一种元格式来自动获取源文件并编译它们。源可以是HTTP,FTP HTTPS等。我认为curl支持所有有良好的库存卷曲。 “将结果发送到web服务”意味着发布编译结果,这是相当微不足道的。 – z3cko 2010-01-19 11:02:39

2

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

0

遗憾地说,你真的必须使用POE目前..具体来说,你需要使用POE::Component::Client::HTTP(为(保活)POE::Component::Server::HTTP::KeepAlive池),大概多了一些部件。我只是做了这个任务,我不得不每天下载150k照片(在SQL)存储他们的url的sha1,调整它们的大小,将它们散列到它们的图像的SHA1并将其硬连接到URL的sha1,并更新数据库显示下载的图像和日期的sha1。我用POE做了所有这些。而且,除了一些难以调试的怪癖,我可能永远不会修复,以及随机POE核心转储,它的工作原理相当好。

我们为第三方附属机构提供了一个简单得多的图像下载程序,该图像下载程序通过VIN行将图像标识为CSV,下载图像并将其重命名为vin连字符[1..n]。你可以找到它on github。它使用Parallel::ForkMangaer这是另一种解决方案,但使用它的本质消除了KA,并且可以使用POE轻松获得池。

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

+0

为什么“伤心地说”?是POE邪恶? – z3cko 2010-01-20 04:57:21

0

CPAN::Checksums为CPAN用来创建校验文件中的每个作者的目录下的东西。