0

--limit-rateCurb gem (curb への ruby​​ インターフェイス) によるダウンロードのオプションを設定したいと思います。

カールの場合:

curl --limit-rate 10K http://server/large_file.rar

Curb によるダウンロードの場合、次のコードがあります (プログレスバーもありますが、この質問には関係ありません)。

require 'rubygems'
require 'curb'

request = 'http://server/large_file.rar'    
filename = 'large_file.rar'

f = open(filename, 'wb')

c = Curl::Easy.new(request) do |curl|    
  curl.on_body { |d| f << d; d.length }
end

c.perform

f.close

--limit-rateこのスクリプトでオプションを設定するにはどうすればよいですか? 私が知る限り、簡単な方法はありません (私はすでに rdoc を読み、グーグルで調べました)。

4

1 に答える 1

0

これを行うには、 を設定CURLOPT_MAX_RECV_SPEED_LARGElibcurlます。APIcurbを使用して、次のことを行います。

c = Curl::Easy.new(request) do |curl|
  curl.set(:max_recv_speed_large, download_limit)
  curl.on_body { |d| f << d; d.length }
end

ここdownload_limitで、1 秒あたりの最大ダウンロード速度 (バイト単位) の整数です。

詳細情報: http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTMAXRECVSPEEDLARGE

于 2011-08-29T16:50:21.543 に答える