Как установить опцию предельной скорости в драгоценном камне? - PullRequest
0 голосов
/ 28 августа 2011

Я бы хотел установить опцию --limit-rate для загрузок, выполняемых с помощью Curb gem (интерфейс ruby ​​к curl).

В curl:

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 и немного погуглил).

1 Ответ

0 голосов
/ 29 августа 2011

Это можно сделать, установив 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

...