Perl 프로그램에서 다운로드를 스로틀하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/539508

  •  22-08-2019
  •  | 
  •  

문제

다운로드 스로틀 링을 사용할 수있는 Perl 모듈이 있습니까? 특정 파일을 다운로드하고 싶지만 다운로드 속도를 특정 숫자의 KB/SEC로 제한합니다.

도움이 되었습니까?

해결책

www :: curl과 curlopt_max_recv_speed_large 옵션처럼 보입니다.

#!/usr/bin/env perl

use strict;
use warnings;
use feature ':5.10';
use WWW::Curl::Easy;

# Setting the options
my $curl = WWW::Curl::Easy->new;

$curl->setopt(CURLOPT_HEADER,1);
$curl->setopt(CURLOPT_URL, 'http://www.google.com');
$curl->setopt(CURLOPT_MAX_RECV_SPEED_LARGE, 1);

my $response_body;
open my $fh, ">", \$response_body or die; # presumably this can be a real file as well.
$curl->setopt(CURLOPT_WRITEDATA,$fh);

my $ret = $curl->perform;
die 'Error: '. $curl->strerror($ret) if $ret;

my $response_code = $curl->getinfo(CURLINFO_HTTP_CODE);
say "Received response: $response_body";

이 예에서는 초당 1 바이트로 Google을 다운로드합니다. 아주 느린.

다른 팁

PERL에만 국한되지 않고 특정 프로토콜에 국한되지 않는 기술은 사용하는 것입니다. 물방울:

Streatle은 휴대용 경량 사용자 공간 대역폭 셰이퍼입니다. 협업 모드 (속도와 함께) 또는 독립형 모드로 실행할 수 있습니다.

또한보십시오 C에서 소켓 연결의 대역폭을 어떻게 스로틀을 스로틀을 어떻게 조절합니까?

이 기술을 PERL 모듈로 패키지하는 것이 좋을 것입니다 (예 : IO :: 핸들을 서브 클래스).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top