Class: QiniuMiniSdk::Policy

Inherits:
Object
  • Object
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_urlObject



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_jsonObject



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

#uptokenObject



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