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
42
43
44
45
46
|
# File 'lib/qiniu_mini_sdk/policy.rb', line 42
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
|
#download_url ⇒ Object
36
37
38
39
40
|
# File 'lib/qiniu_mini_sdk/policy.rb', line 36
def download_url
base_url = QiniuMiniSdk.urls[@bucket] || "http://#{@bucket}.qiniudn.com"
url = "#{base_url}/#{@key}?e=#{@params[:deadline]}"
"#{url}&token=#{QiniuMiniSdk.access_key}:#{hmac_sha1_sign url}"
end
|
#expires_in=(time) ⇒ Object
26
27
28
|
# File 'lib/qiniu_mini_sdk/policy.rb', line 26
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
48
49
50
51
52
|
# File 'lib/qiniu_mini_sdk/policy.rb', line 48
def to_json
JSON.generate @params.map {|k, v|
[change_key(k.to_s), v]
}.to_h
end
|
#uptoken ⇒ Object
30
31
32
33
34
|
# File 'lib/qiniu_mini_sdk/policy.rb', line 30
def uptoken
access_key = QiniuMiniSdk.access_key
encoded_put_policy = urlsafe_base64_encode(self.to_json)
"#{access_key}:#{encoded_sign}:#{hmac_sha1_sign encoded_put_policy}"
end
|