我正在使用LWP::UserAgent和:content_file
选项将一个大文件直接下载到Perl文件中。
这是我的代码的一个简化的例子:
require LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->timeout(3600);
$ua->env_proxy;
my $response = $ua->get(
'http://example.com/largefile.xml',
:content_file => 'path/to/file/largefile.xml'
);
if ($response->is_success) {
print "File downloadedn";
}
else {
die $response->status_line;
}
是否有办法显示下载状态的百分比?(或类似于wget
输出)
10% [===> ] 65.120.154 527K/s
来自该模块的文档。
ua -> show_progress
ua -> show_progress(布尔美元)
获取/设置一个值,该值指示在处理请求时是否应该在终端上显示进度条。默认为FALSE。
Dave已经回答了你的问题,但我想建议以下两个模块。
-
LWP::UserAgent::ProgressBar: LWP::UserAgent的子类,提供
get_with_progress
和post_with_progress
的附加方法。 -
LWP::UserAgent::ProgressAny:使用Progress::Any框架,因此,它可以用来记录进度到任何输出