我想为Curb gem(ruby接口卷曲)完成的下载设置--limit-rate
选项。
卷曲:
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并做了一些谷歌搜索)。
答案 0 :(得分:0)
您可以在CURLOPT_MAX_RECV_SPEED_LARGE
中设置libcurl
来执行此操作。通过curb
API,您可以:
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
是最大下载速率的整数,以每秒字节数为单位。
了解更多信息:http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTMAXRECVSPEEDLARGE