2011-03-14 68 views
3

我正在开发一个从互联网上下载文件的应用程序;这些文件主要在ftp服务器上,我用LWP::Simplegetstore函数来检索文件。但我想限制下载速度,就像在wget ......用LWP设置下载速度 - Perl

你见过类似--limit-ratewgetLWPLWP::Simple实现什么?

谢谢

回答

2

如果您主要关心的是FTP服务器,也许看看Net::FTP::Throttle。您可以在构造函数中设置最大比率。

2

没有这样的选择。

如果您使用回调来获取响应主体,您可以在必要时有意识地减慢回调(使用sleep())以提供所需的速率。

当然,你也可以完全避免LWP。例如,你可以掏出电话wgetcurl或其他任何东西。您也可以使用其他模块,如WWW::Curl

更新:添加最后一段。

0

...或者你可以使用LWP over libcurl :)

#!/usr/bin/env perl 
use common::sense; 

use LWP::Protocol::Net::Curl MAX_RECV_SPEED_LARGE => 10240; # 10 KB/s 
use LWP::Simple; 

getstore 'http://www.cpan.org/src/5.0/perl-5.16.2.tar.gz' => 'perl.tar.gz';