qiniu_mini_sdk 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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