2016-11-09 31 views
8

LWP :: UserAgentと:content_fileオプションを使用して、大きなファイルをPerlで直接ファイルにダウンロードします。LWP :: UserAgentのダウンロードの進行状況を表示

これは私のコードの簡単な例です:

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出力に似何か)documentation for the moduleから

10% [===>         ] 65.120.154 527K/s 

答えて

9

$ UA-> show_progress

$ UA-> show_progress($ブール)

プログレスバーが要求として端末に表示するかどうかを示す値を設定/取得します処理されます。デフォルトはFALSEです。

+0

これだけです!私はそれがとても簡単だと信じられない、ありがとう! – nanocv

+0

また、ActivePerlインストールの/ bin/lwp-downloadのソースコードを見てください。 –

+3

@KostiaShiian:lwp-downloadはActivePerlに固有のものではありません。それは[CPANから入手できます](https://metacpan.org/pod/distribution/libwww-perl/bin/lwp-download)です。 –

3

Daveは、すでにあなたの質問に回答しましたが、私は以下の2つのモジュールをお勧めしたいと思います。

+0

ありがとう!私はそれらの両方でも見てみましょう。 – nanocv

+0

LWP :: UserAgent :: ProgressBarは、OPが頭に浮かべていたことに沿って進捗バーを提供します。それが問題であれば(例えば、移植性のために)既にインストールされている可能性は低いですが、 – Randall

関連する問題