class Aliyun::ESS::Authentication::CanonicalString
Constants
- DEFAULT_PARAMS
Attributes
params[R]
query[R]
Public Class Methods
new(params, access_key_id, options = {})
click to toggle source
Calls superclass method
# File lib/aliyun/ess/authentication.rb, line 82 def initialize(params, access_key_id, options = {}) super() @params = params @access_key_id = access_key_id @options = options self << build end
Private Instance Methods
build()
click to toggle source
# File lib/aliyun/ess/authentication.rb, line 92 def build initialize_query canonicalized_query_string = query.sort_by{|k, _| k}.map do |key, value| value = value.to_s.strip escaped_value = escape_string(value) "#{key}=#{escaped_value}" end.join('&') canonicalized_query_string end
escape_string(str)
click to toggle source
# File lib/aliyun/ess/authentication.rb, line 104 def escape_string(str) CGI.escape(str).gsub(/\+/,'%20').gsub(/%7E/, '~') end
initialize_query()
click to toggle source
# File lib/aliyun/ess/authentication.rb, line 108 def initialize_query @query = { 'AccessKeyId' => @access_key_id } @query = params.merge(@query) @query = DEFAULT_PARAMS.merge('SignatureNonce' => random_string, 'Timestamp' => Time.now.utc.iso8601).merge(@query) end
random_string(len=32)
click to toggle source
# File lib/aliyun/ess/authentication.rb, line 114 def random_string(len=32) rand(36**(len-1)..36**(len)).to_s 36 end