class BaiduPcs::Base

Attributes

body[RW]
options[RW]
request[RW]
response[RW]

Public Class Methods

atoken_params() click to toggle source

common

# File lib/baidu_pcs.rb, line 97
def atoken_params
  {access_token: Config.access_token}
end
delete(url, params={}, opts={}) click to toggle source
# File lib/baidu_pcs.rb, line 92
def delete(url, params={}, opts={})
  new(url, :delete, params, opts).run!
end
get(url, params={}, opts={}) click to toggle source
# File lib/baidu_pcs.rb, line 83
def get(url, params={}, opts={})
  new(url, :get, params, nil, opts).run!
end
method_params(buz_method=nil, params={}) click to toggle source
# File lib/baidu_pcs.rb, line 100
def method_params(buz_method=nil, params={})
  opts = atoken_params.merge(params)
  opts.merge!(method: buz_method) if buz_method
  opts
end
new(url, method=:get, params={}, body={}, opts={}) click to toggle source
# File lib/baidu_pcs.rb, line 33
def initialize(url, method=:get, params={}, body={}, opts={})
  [:noprogress, :verbose].each do |k|
    opts[k] = params.delete(k) if params.key?(k) and !opts.key?(k)
  end
  @options = {
    method: method||:get,
    headers: {"User-Agent"=>"Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"},
    params: params
  } 
  if headers = opts.delete(:headers) 
    @options[:headers].merge!(headers)
  end
  @options.merge!(body: body) unless body.blank?
  @options.merge!(opts)
  @request = Typhoeus::Request.new(url, @options)
  if @options[:verbose]
    puts "#### request options: "
    puts @options
  end
  @request.on_complete do |response|
    @response = response
    if response.success? #(mock || return_code == :ok) && response_code && response_code >= 200 && response_code < 300
      if response.headers["Content-Disposition"] =~ /attachment;file/ or response.headers["Content-Type"] =~ /image\//
        @body = response.body
      else  #default as json
        @body = MultiJson.load(response.body, symbolize_keys: true)
      end
    elsif response.timed_out?
      raise "Timeout with options: #{options}"
    elsif response.code == 0
      raise "Could not get an http response, something's wrong: #{response.return_message} with options: #{options}"
    else
      raise "Http request failed with code: #{response.code}, msg: #{response.body}"
    end
  end
  self
end
post(url, params={}, body={}, opts={}) click to toggle source
# File lib/baidu_pcs.rb, line 86
def post(url, params={}, body={}, opts={})
  new(url, :post, params, body, opts).run!
end
put(url, params={}, body={}, opts={}) click to toggle source
# File lib/baidu_pcs.rb, line 89
def put(url, params={}, body={}, opts={})
  new(url, :put, params, body, opts).run!
end
quota() click to toggle source
# File lib/baidu_pcs.rb, line 105
def quota
  get("#{PCS_BASE_URL}/quota", method_params(:info))
end

Public Instance Methods

http_code() click to toggle source
# File lib/baidu_pcs.rb, line 78
def http_code
  response.code
end
ok?() click to toggle source
# File lib/baidu_pcs.rb, line 75
def ok?
  response.success?
end
run!() click to toggle source
# File lib/baidu_pcs.rb, line 71
def run!
  @request.run
  self
end