qiniu_mini_sdk 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a0776c732dcc0a94f66d668a6c3d09b646da59b0
4
- data.tar.gz: 5a01abfda4c81f759d2908eda566ffe780561774
3
+ metadata.gz: 789efab8c23cc420d7e3dd37cb95e880cc2749f2
4
+ data.tar.gz: 4873c86aefb19944ce0497b11d816f4c062250c2
5
5
  SHA512:
6
- metadata.gz: bc63498b83139a00f941ad8527672da6d0a59cdf2b4c769a6f00bc733f031d9211e54279be23a76ccb72886b05c1e9a05e33a1d6f79116d50200837879721323
7
- data.tar.gz: a8399ab29f1858edddc5a7c84c19462dcc824ecafe84cd57af8a800ae2ebb426aeae61132253e9e09c3168757a251d9037a99ab80420b71ee1ee1600c73aff8e
6
+ metadata.gz: ee84a07faf9ef56a48dcded2834c043f8874f5c68416af3167c52ac535ff44a1473bbac77136c1220ca6c898f9c20165d3dd54fa84e91950a77aa998af26bf18
7
+ data.tar.gz: ee55228fb86b0bd307defdda883dc4eaa3a1f9d0f086da3cd2b60b391d37f3258859aba7bd16fff5fb8185fea416fa86eb43ee64755d5bb8f57b3ecc771759db
data/README.md CHANGED
@@ -24,10 +24,17 @@ Or install it yourself as:
24
24
  QiniuMiniSdk.setup do |config|
25
25
  config.access_key = 'xxxx'
26
26
  config.secret_key = 'sdfadsf'
27
+ # 如果你的bucket, 和你的默认url不同(比如你使用的是https的url), 可以使用下面的方法
28
+ config.bucket_url 'test-123123', 'https://dn-test12312313.qbox.me'
29
+ config.bucket_url 'test-12312', "https://dn-werwer.qbox.me"
27
30
  end
28
31
 
29
32
  qiniu = QiniuMiniSdk::Policy.new bucket: '你的buckname'
30
33
  qiniu.uptoken
34
+
35
+ # 获取下载地址
36
+ qiniu = QiniuMiniSdk::Policy.new bucket: '你的buckname', key: '你下载资源的key', expires_in: '有效期,可以不填直接忽略这个参数, 默认为3600秒'
37
+ qiniu.download_url
31
38
  ```
32
39
 
33
40
  ## Contributing
@@ -22,20 +22,21 @@ module QiniuMiniSdk
22
22
  @bucket = bucket
23
23
  end
24
24
 
25
+
25
26
  def expires_in=(time)
26
27
  @params[:deadline] = Time.now.to_i + time
27
28
  end
28
29
 
29
30
  def uptoken
30
31
  access_key = QiniuMiniSdk.access_key
31
- secret_key = QiniuMiniSdk.secret_key
32
-
33
32
  encoded_put_policy = urlsafe_base64_encode(self.to_json)
34
- digest = OpenSSL::Digest.new('sha1')
35
- sign = OpenSSL::HMAC.digest(digest, secret_key, encoded_put_policy)
36
- encoded_sign = urlsafe_base64_encode(sign)
33
+ "#{access_key}:#{encoded_sign}:#{hmac_sha1_sign encoded_put_policy}"
34
+ end
37
35
 
38
- "#{access_key}:#{encoded_sign}:#{encoded_put_policy}"
36
+ def download_url
37
+ base_url = QiniuMiniSdk.urls[@bucket] || "http://#{@bucket}.qiniudn.com"
38
+ url = "#{base_url}/#{@key}?e=#{@params[:deadline]}"
39
+ "#{url}&token=#{QiniuMiniSdk.access_key}:#{hmac_sha1_sign url}"
39
40
  end
40
41
 
41
42
  def method_missing(meth, *args, &blk)
@@ -72,5 +73,10 @@ module QiniuMiniSdk
72
73
  Base64.encode64(content).strip.gsub('+', '-').gsub('/','_').gsub(/\r?\n/, '')
73
74
  end
74
75
 
76
+ def hmac_sha1_sign(data)
77
+ digest = OpenSSL::Digest.new('sha1')
78
+ urlsafe_base64_encode OpenSSL::HMAC.digest(digest, QiniuMiniSdk.secret_key, data)
79
+ end
80
+
75
81
  end
76
82
  end
@@ -1,3 +1,3 @@
1
1
  module QiniuMiniSdk
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -5,11 +5,20 @@ module QiniuMiniSdk
5
5
  autoload :Policy, 'qiniu_mini_sdk/policy'
6
6
 
7
7
  def self.setup
8
+ QiniuMiniSdk.default
8
9
  yield self
9
10
  end
10
11
 
11
12
  class << self
12
- attr_accessor :access_key, :secret_key
13
+ attr_accessor :access_key, :secret_key, :urls
14
+
15
+ def bucket_url bucket_name, bucket_url
16
+ @urls[bucket_name] = bucket_url
17
+ end
18
+
19
+ def default
20
+ @urls ||= {}
21
+ end
13
22
  end
14
23
 
15
24
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qiniu_mini_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - mjason