Class: Aliyun::Oss::Authorization

Inherits:
Object
  • Object
show all
Defined in:
lib/aliyun/oss/authorization.rb

Constant Summary collapse

PROVIDER =
'OSS'

Class Method Summary collapse

Class Method Details

.get_authorization(access_key, secret_key, options = {}) ⇒ String

Get authorization key

Returns:

  • (String)

    the authorization string

See Also:



61
62
63
64
65
# File 'lib/aliyun/oss/authorization.rb', line 61

def self.get_authorization(access_key, secret_key, options = {})
  content_string = concat_content_string(options[:verb], options[:date], options)
  signature_string = signature(secret_key, content_string)
  "#{PROVIDER} #{access_key}:#{signature_string.strip}"
end

.get_base64_policy(policy) ⇒ String

Get base64 encoded string, used to fill policy field

Parameters:

  • secret_key (String)

    Secret Key

  • policy (Hash)

    Policy Detail

Returns:

  • (String)

See Also:



38
39
40
# File 'lib/aliyun/oss/authorization.rb', line 38

def self.get_base64_policy(policy)
  Base64.encode64(JSON.generate(policy).force_encoding('utf-8')).delete("\n")
end

.get_policy_signature(secret_key, policy) ⇒ String

Get Signature for policy

Parameters:

  • secret_key (String)

    Secret Key

  • policy (Hash)

    Policy Detail

Returns:

  • (String)

See Also:



50
51
52
# File 'lib/aliyun/oss/authorization.rb', line 50

def self.get_policy_signature(secret_key, policy)
  signature(secret_key, get_base64_policy(policy)).strip
end

.get_temporary_signature(secret_key, expire_time, options = {}) ⇒ String

Get temporary Signature

Parameters:

  • secret_key (String)

    Secret Key

  • expires (Integer)

    the number of seconds since January 1, 1970 UTC. used to specified expired time

  • options (Hash) (defaults to: {})

    other options

Options Hash (options):

  • :key (String)

    the object name

  • :bucket (String)

    bucket name

  • :verb, (String)

    Request Method

  • :query (Hash)

    Query Params

  • :headers (Hash)

    Headers Params

Returns:

  • (String)

See Also:



25
26
27
28
# File 'lib/aliyun/oss/authorization.rb', line 25

def self.get_temporary_signature(secret_key, expire_time, options = {})
  content_string = concat_content_string(options[:verb], expire_time, options)
  URI.escape(signature(secret_key, content_string).strip)
end