Class: QiniuMiniSdk::Policy
- Inherits:
-
Object
- Object
- QiniuMiniSdk::Policy
show all
- Defined in:
- lib/qiniu_mini_sdk/policy.rb
Instance Method Summary
collapse
Constructor Details
#initialize(args = {}) ⇒ Policy
Returns a new instance of Policy.
9
10
11
12
13
14
15
|
# File 'lib/qiniu_mini_sdk/policy.rb', line 9
def initialize args={}
@params = {}
args.each do |k, v|
self.send "#{k}=", v
end
default
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(meth, *args, &blk) ⇒ Object
41
42
43
44
45
|
# File 'lib/qiniu_mini_sdk/policy.rb', line 41
def method_missing(meth, *args, &blk)
if meth =~ /(.+)=/
@params[$1.to_s] = args.first
end
end
|
Instance Method Details
#bucket=(bucket) ⇒ Object
21
22
23
|
# File 'lib/qiniu_mini_sdk/policy.rb', line 21
def bucket=(bucket)
@bucket = bucket
end
|
#expires_in=(time) ⇒ Object
25
26
27
|
# File 'lib/qiniu_mini_sdk/policy.rb', line 25
def expires_in=(time)
@params[:deadline] = Time.now.to_i + time
end
|
#key=(key) ⇒ Object
17
18
19
|
# File 'lib/qiniu_mini_sdk/policy.rb', line 17
def key=(key)
@key = key
end
|
#to_json ⇒ Object
47
48
49
50
51
|
# File 'lib/qiniu_mini_sdk/policy.rb', line 47
def to_json
JSON.generate @params.map {|k, v|
[change_key(k.to_s), v]
}.to_h
end
|
#uptoken ⇒ Object
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/qiniu_mini_sdk/policy.rb', line 29
def uptoken
access_key = QiniuMiniSdk.access_key
secret_key = QiniuMiniSdk.secret_key
encoded_put_policy = urlsafe_base64_encode(self.to_json)
digest = OpenSSL::Digest.new('sha1')
sign = OpenSSL::HMAC.digest(digest, secret_key, encoded_put_policy)
encoded_sign = urlsafe_base64_encode(sign)
"#{access_key}:#{encoded_sign}:#{encoded_put_policy}"
end
|