установить скорость загрузки с помощью LWP - Perl

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

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

Спасибо


person Juan    schedule 14.03.2011    source источник


Ответы (3)


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

person bvr    schedule 14.03.2011

Нет такого варианта.

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

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

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

person ikegami    schedule 14.03.2011

... Или вы можете использовать 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';
person creaktive    schedule 13.11.2012