显示LWP::UserAgent下载进度
Display LWP::UserAgent download progress
我正在使用 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 downloaded\n";
}
else {
die $response->status_line;
}
有什么方法可以显示下载状态的百分比吗? (或类似于 wget
输出的内容)
10% [===> ] 65.120.154 527K/s
来自documentation for the module.
$ua->show_progress
$ua->show_progress( $boolean )
Get/set a value indicating whether a progress bar should be displayed on the terminal as requests are processed. The default is FALSE.
已经回答了你的问题,但我想推荐以下 2 个模块。
LWP::UserAgent::ProgressBar: A subclass of LWP::UserAgent 提供额外的方法 get_with_progress
和 post_with_progress
.
LWP::UserAgent::ProgressAny: Uses Progress::Any框架,因此,它可以用来记录任何输出的进度。
我正在使用 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 downloaded\n";
}
else {
die $response->status_line;
}
有什么方法可以显示下载状态的百分比吗? (或类似于 wget
输出的内容)
10% [===> ] 65.120.154 527K/s
来自documentation for the module.
$ua->show_progress
$ua->show_progress( $boolean )
Get/set a value indicating whether a progress bar should be displayed on the terminal as requests are processed. The default is FALSE.
LWP::UserAgent::ProgressBar: A subclass of LWP::UserAgent 提供额外的方法
get_with_progress
和post_with_progress
.LWP::UserAgent::ProgressAny: Uses Progress::Any框架,因此,它可以用来记录任何输出的进度。