3

我正在开发一个从互联网下载文件的应用程序;这些文件主要在ftp服务器中,我正在使用LWP::Simplegetstore检索文件的功能。但我想限制下载速度,比如wget...

你有没有看到类似于--limit-ratefromwget内部实现的LWP东西LWP::Simple??

谢谢

4

3 回答 3

2

没有这样的选择。

如果您使用回调来获取响应正文,则可以在必要时故意减慢回调(使用 sleep())以提供所需的速率。

当然,你也可以完全避免 LWP。例如,你可以掏出电话来打电话wgetcurl或者其他什么。您还可以使用另一个模块,例如WWW::Curl

更新:添加了最后一段。

于 2011-03-14T17:44:26.930 回答
2

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

于 2011-03-14T18:56:11.713 回答
0

...或者您可以在 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';
于 2012-11-13T00:44:57.160 回答