Module: Aliyun::MTS::Util

Defined in:
lib/aliyun/mts/util.rb

Class Method Summary collapse

Class Method Details

.default_paramsObject



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/aliyun/mts/util.rb', line 32

def default_params
  {
    Format:           "JSON",
    Version:          "2014-06-18",
    AccessKeyId:      Aliyun::MTS.access_key_id,
    SignatureMethod:  "HMAC-SHA1",
    Timestamp:        Time.now.utc.iso8601,
    SignatureVersion: "1.0",
    SignatureNonce:   signature_nonce
  }
end

.get_signature(params) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/aliyun/mts/util.rb', line 21

def get_signature(params)
  cano_query = params.sort.map {
    |k, v| [CGI.escape(k.to_s), CGI.escape(v)].join('=') }.join('&')

  string_to_sign =
    'GET&' + CGI.escape('/') + '&' + CGI.escape(cano_query)

  Base64.strict_encode64(
    OpenSSL::HMAC.digest('sha1', Aliyun::MTS.access_key_secret + "&", string_to_sign))
end

.signature_params(params) ⇒ Object

签名后参数



15
16
17
18
19
# File 'lib/aliyun/mts/util.rb', line 15

def signature_params(params)
  params.merge!(default_params)
  params[:Signature] = get_signature(params)
  params
end