class AliyunSDK::RPCClient
The RPCClient
class
Attributes
__access_key_id[RW]
__access_key_secret[RW]
__endpoint[RW]
__protocol[RW]
__region_id[RW]
__version[RW]
codes[RW]
credential[RW]
Public Class Methods
new(config)
click to toggle source
# File lib/rpc_client.rb, line 58 def initialize(config) self.__access_key_id = config[:accessKeyId] self.__access_key_secret = config[:accessKeySecret] self.__version = config[:apiVersion] self.credential = config[:credential] self.__endpoint = config[:endpoint] self.__region_id = config[:regionId] self.__protocol = config[:protocol] self.codes = Set.new [200, '200', 'OK', 'Success'] codes.merge config[:codes] if config[:codes] end
Public Instance Methods
__default(input, default)
click to toggle source
# File lib/rpc_client.rb, line 122 def __default(input, default) input || default end
__default_number(input, default)
click to toggle source
# File lib/rpc_client.rb, line 118 def __default_number(input, default) input || default end
__get_access_key_id()
click to toggle source
# File lib/rpc_client.rb, line 78 def __get_access_key_id __access_key_id end
__get_access_key_secret()
click to toggle source
# File lib/rpc_client.rb, line 82 def __get_access_key_secret __access_key_secret end
__get_endpoint(product, region_id)
click to toggle source
# File lib/rpc_client.rb, line 86 def __get_endpoint(product, region_id) return __endpoint if __endpoint "#{product}.#{region_id}.aliyuncs.com" end
__get_nonce()
click to toggle source
# File lib/rpc_client.rb, line 74 def __get_nonce SecureRandom.hex(16) end
__get_signature(request, access_key_secret)
click to toggle source
# File lib/rpc_client.rb, line 126 def __get_signature(request, access_key_secret) method = (request['method'] || 'GET').upcase normalized = AliyunSDK.normalize(request['query']) canonicalized = AliyunSDK.canonicalize(normalized) string2sign = "#{method}&#{AliyunSDK.encode('/')}&#{AliyunSDK.encode(canonicalized)}" key = access_key_secret + '&' Base64.encode64(OpenSSL::HMAC.digest('sha1', key, string2sign)).strip end
__get_timestamp()
click to toggle source
# File lib/rpc_client.rb, line 70 def __get_timestamp Time.now.utc.strftime('%Y-%m-%dT%H:%M:%SZ') end
__has_error(body)
click to toggle source
# File lib/rpc_client.rb, line 97 def __has_error(body) code = body['Code'] code && !codes.include?(code) end
__is5xx(response)
click to toggle source
# File lib/rpc_client.rb, line 92 def __is5xx(response) code = response.code.to_i code >= 500 && code < 600 end
__json(response)
click to toggle source
# File lib/rpc_client.rb, line 102 def __json(response) JSON.parse(response.body) end
__query(query)
click to toggle source
# File lib/rpc_client.rb, line 106 def __query(query) target = {} query.each do |key, value| if value.instance_of?(Array) AliyunSDK.replace_repeat_list(target, key, value) else target[key] = value.to_s end end target end