NAME

    HTTP::Tiny::Bandwidth - HTTP::Tiny with limitation of download/upload
    speed

SYNOPSIS

      use HTTP::Tiny::Bandwidth;
    
      my $http = HTTP::Tiny::Bandwidth->new;
    
      # limit download speed
      my $res = $http->get("http://www.cpan.org/src/5.0/perl-5.22.0.tar.gz", {
        download_limit_bps => 5 * (1024**2), # limit 5Mbps
      });
    
      # you can save memory with mirror method
      my $res = $http->mirror(
        "http://www.cpan.org/src/5.0/perl-5.22.0.tar.gz",
        "/path/to/save/perl-5.22.0.tar.gz",
        { download_limit_bps => 5 * (1024**2) }, # limit 5Mbps
      );
    
      # limit upload speed
      my $res = $http->post("http://example.com", {
        content_file     => "big-file.txt", # or content_fh
        upload_limit_bps => 5 * (1024**2),  # limit 5Mbps
      });

DESCRIPTION

    HTTP::Tiny::Bandwidth is a subclass of HTTP::Tiny which can limit
    download/upload speed.

    If you want to use LWP::UserAgent with limitation of download/upload
    speed, see eg
    <https://github.com/shoichikaji/HTTP-Tiny-Bandwidth/tree/master/eg>
    directory.

 HOW TO LIMIT DOWNLOAD SPEED

    HTTP::Tiny::Bandwidth's request/get/... and mirror methods accepts
    download_limit_bps option:

      my $http = HTTP::Tiny::Bandwidth->new;
    
      my $res = $http->get("http://www.cpan.org/src/5.0/perl-5.22.0.tar.gz", {
        download_limit_bps => 5 * (1024**2),
      });
    
      my $res = $http->mirror(
        "http://www.cpan.org/src/5.0/perl-5.22.0.tar.gz",
        "/path/to/save/perl-5.22.0.tar.gz",
        { download_limit_bps => 5 * (1024**2) },
      );

 HOW TO LIMIT UPLOAD SPEED

    HTTP::Tiny::Bandwidth's request/post/put/... methods accepts
    content_file, content_fh, upload_limit_bps options:

      my $http = HTTP::Tiny::Bandwidth->new;
    
      # content_file
      my $res = $http->post("http://example.com", {
        content_file     => "big-file.txt",
        upload_limit_bps => 5 * (1024**2), # limit 5Mbps
      });
    
      # or, you can specify content_fh
      open my $fh, "<", "big-file.txt" or die;
      my $res = $http->post("http://example.com", {
        content_fh       => $fh,
        upload_limit_bps => 5 * (1024**2), # limit 5Mbps
      });

SEE ALSO

    HTTP::Tiny

COPYRIGHT AND LICENSE

    Copyright 2015 Shoichi Kaji

    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.