установить скорость загрузки с LWP - Perl - PullRequest
3 голосов
/ 14 марта 2011

Я разрабатываю приложение, которое загружает файлы из интернета;файлы в основном находятся на ftp серверах, я использую LWP::Simple и функцию getstore для извлечения файлов.Но я бы хотел ограничить скорость загрузки, как в wget ...

. Вы видели что-то похожее на --limit-rate из wget, реализованное в LWP или LWP::Simple ??

Спасибо

Ответы [ 3 ]

2 голосов
/ 14 марта 2011

Если ваши основные проблемы касаются FTP-серверов, возможно, посмотрите на Net :: FTP :: Throttle Вы можете установить максимальную скорость в конструкторе.

2 голосов
/ 14 марта 2011

Такой опции нет.

Если вы используете обратный вызов для получения тела ответа, вы можете намеренно замедлить обратный вызов (используя sleep ()), когда это необходимо для обеспечения желаемой скорости.

Конечно, вы также можете полностью избежать LWP.Например, вы могли бы и раскошелиться, чтобы позвонить wget, curl или как угодно.Также можно использовать другой модуль, например WWW :: Curl .

Обновление: добавлен последний абзац.

0 голосов
/ 13 ноября 2012

... Или вы можете использовать LWP поверх 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';
...