インターネットからファイルをダウンロードするアプリケーションを開発しています。ファイルは主にftpサーバーにあり、ファイルを取得する機能を使用していますLWP::Simple
。getstore
しかし、私はダウンロードの速度を制限したいと思いwget
ます...
or内に実装された--limit-rate
fromに似たものを見たことがありますか??wget
LWP
LWP::Simple
ありがとう
あなたの主な関心事がFTPサーバーであるなら、多分Net :: FTP::Throttleを見てください。コンストラクターで最大レートを設定できます。
そのようなオプションはありません。
コールバックを使用して応答本文を取得する場合、目的のレートを提供するために必要な場合は、(sleep() を使用して) コールバックを意図的に遅くすることができます。
もちろん、LWP を完全に回避することもできます。たとえば、シェルアウトして callwget
などを呼び出すことができますcurl
。WWW::Curlなどの別のモジュールを使用することもできます。
更新: 最後の段落を追加しました。
...または、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';