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 +4 -4
- data/README.md +7 -0
- data/lib/qiniu_mini_sdk/policy.rb +12 -6
- data/lib/qiniu_mini_sdk/version.rb +1 -1
- data/lib/qiniu_mini_sdk.rb +10 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 789efab8c23cc420d7e3dd37cb95e880cc2749f2
|
4
|
+
data.tar.gz: 4873c86aefb19944ce0497b11d816f4c062250c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
35
|
-
|
36
|
-
encoded_sign = urlsafe_base64_encode(sign)
|
33
|
+
"#{access_key}:#{encoded_sign}:#{hmac_sha1_sign encoded_put_policy}"
|
34
|
+
end
|
37
35
|
|
38
|
-
|
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
|
data/lib/qiniu_mini_sdk.rb
CHANGED
@@ -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
|