我正在开发一个从互联网下载文件的应用程序;这些文件主要位于 ftp 服务器中,我使用LWP::Simple
和getstore
函数来检索文件。但我想限制下载速度,例如wget
...
您是否看到类似于--limit-rate
或wget
内实施的LWP
{/ 1}}的内容
由于
答案 0 :(得分:2)
没有这样的选择。
如果您使用回调来获取响应正文,则可以在必要时故意减慢回调(使用sleep())以提供所需的速率。
当然,你也可以完全避免使用LWP。例如,你可以打电话给wget
,curl
或其他任何东西。您还可以使用其他模块,例如WWW::Curl。
更新:添加了最后一段。
答案 1 :(得分:2)
如果您的主要问题是FTP服务器,请查看Net::FTP::Throttle。您可以在构造函数中设置最大速率。
答案 2 :(得分: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';