qinium 0.1.2 → 0.2.0
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 +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +1 -3
- data/lib/qinium/auth.rb +45 -0
- data/lib/qinium/config.rb +1 -1
- data/lib/qinium/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1882ca15da2a4be5ef0fd71015e167d3e5c1803bd8be620aebf092407604fc14
|
4
|
+
data.tar.gz: 5ba5f38fdde0eeede9f67cad0405b5cf4cc92a5d457b45c73194e3c569369869
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eab9765b2a129823cdf304e3848b6137119bc04b866fa2dd3a3269ba28659d3d8e47ff9bde86488defe2fc2f5b719d18ef71429cd8af3c88f58774802bf40e98
|
7
|
+
data.tar.gz: f74c6321970f164702754a4ba9a512898c83da2528824d487644c5536aebbeaa6e010a709d5069beb43814a419fe3035e07e41d1fb5bb921d69bf3b6a3624cd9
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# Qinium
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
3
|
+
Qiniu Cloud Storage SDK for Ruby, support multiple configure for SaaS product.
|
6
4
|
|
7
5
|
## Installation
|
8
6
|
|
data/lib/qinium/auth.rb
CHANGED
@@ -32,5 +32,50 @@ class Qinium
|
|
32
32
|
sign = calculate_hmac_sha1_digest(secret_key, signing_str)
|
33
33
|
Utils.urlsafe_base64_encode(sign)
|
34
34
|
end
|
35
|
+
|
36
|
+
def authorize_download_url(domain, key, access_key, secret_key, args = {})
|
37
|
+
url_encoded_key = CGI::escape(key)
|
38
|
+
schema = args[:schema] || "http"
|
39
|
+
port = args[:port]
|
40
|
+
|
41
|
+
if port.nil? then
|
42
|
+
download_url = "#{schema}://#{domain}/#{url_encoded_key}"
|
43
|
+
else
|
44
|
+
download_url = "#{schema}://#{domain}:#{port}/#{url_encoded_key}"
|
45
|
+
end
|
46
|
+
|
47
|
+
### URL变换:追加FOP指令
|
48
|
+
if args[:fop].is_a?(String) && args[:fop] != '' then
|
49
|
+
if download_url.include?('?')
|
50
|
+
# 已有参数
|
51
|
+
download_url = "#{download_url}&#{args[:fop]}"
|
52
|
+
else
|
53
|
+
# 尚无参数
|
54
|
+
download_url = "#{download_url}?#{args[:fop]}"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
### 授权期计算
|
59
|
+
e = Time.now.to_i + args[:expires_in]
|
60
|
+
|
61
|
+
### URL变换:追加授权期参数
|
62
|
+
if download_url.include?('?')
|
63
|
+
# 已有参数
|
64
|
+
download_url = "#{download_url}&e=#{e}"
|
65
|
+
else
|
66
|
+
# 尚无参数
|
67
|
+
download_url = "#{download_url}?e=#{e}"
|
68
|
+
end
|
69
|
+
|
70
|
+
### 生成数字签名
|
71
|
+
sign = calculate_hmac_sha1_digest(secret_key, download_url)
|
72
|
+
encoded_sign = Utils.urlsafe_base64_encode(sign)
|
73
|
+
|
74
|
+
### 生成下载授权凭证
|
75
|
+
dntoken = "#{access_key}:#{encoded_sign}"
|
76
|
+
|
77
|
+
### 返回下载授权URL
|
78
|
+
"#{download_url}&token=#{dntoken}"
|
79
|
+
end
|
35
80
|
end
|
36
81
|
end
|
data/lib/qinium/config.rb
CHANGED
data/lib/qinium/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qinium
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- xiaohui
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Qiniu Cloud Storage SDK for multi-tenant system, can call API with multiple
|
14
14
|
accounts
|
@@ -61,7 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
requirements: []
|
64
|
-
rubygems_version: 3.
|
64
|
+
rubygems_version: 3.4.19
|
65
65
|
signing_key:
|
66
66
|
specification_version: 4
|
67
67
|
summary: Qiniu Cloud Storage SDK for multi-tenant system
|