我正在开发一个从互联网下载文件的应用程序;这些文件主要在ftp服务器中,我正在使用LWP::Simple
和getstore
检索文件的功能。但我想限制下载速度,比如wget
...
你有没有看到类似于--limit-rate
fromwget
内部实现的LWP
东西LWP::Simple
??
谢谢
没有这样的选择。
如果您使用回调来获取响应正文,则可以在必要时故意减慢回调(使用 sleep())以提供所需的速率。
当然,你也可以完全避免 LWP。例如,你可以掏出电话来打电话wget
,curl
或者其他什么。您还可以使用另一个模块,例如WWW::Curl。
更新:添加了最后一段。
如果您主要关心的是 FTP 服务器,也许看看Net::FTP::Throttle。您可以在构造函数中设置最大速率。
...或者您可以在 libcurl 上使用 LWP :)
#!/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';