【发布时间】:2011-03-14 17:39:52
【问题描述】:
我正在开发一个从互联网下载文件的应用程序;文件主要在 ftp 服务器中,我使用LWP::Simple 和getstore 函数来检索文件。但是我想限制下载速度,比如wget ...
你有没有看到类似于wget 中的--limit-rate 在LWP 或LWP::Simple 中实现的东西??
谢谢
【问题讨论】:
我正在开发一个从互联网下载文件的应用程序;文件主要在 ftp 服务器中,我使用LWP::Simple 和getstore 函数来检索文件。但是我想限制下载速度,比如wget ...
你有没有看到类似于wget 中的--limit-rate 在LWP 或LWP::Simple 中实现的东西??
谢谢
【问题讨论】:
如果您主要关心的是 FTP 服务器,请查看Net::FTP::Throttle。您可以在构造函数中设置最大速率。
【讨论】:
没有这样的选择。
如果您使用回调来获取响应正文,则可以在必要时故意减慢回调速度(使用 sleep())以提供所需的速率。
当然,您也可以完全避免使用 LWP。例如,您可以拨打wget、curl 或其他任何电话。您还可以使用其他模块,例如 WWW::Curl。
更新:添加了最后一段。
【讨论】:
...或者你可以使用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';
【讨论】: