qiniu-rs 2.1.1 → 2.1.2
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.
- data/Gemfile.lock +1 -1
- data/lib/qiniu/rs.rb +16 -2
- data/lib/qiniu/rs/utils.rb +2 -0
- data/lib/qiniu/rs/version.rb +1 -1
- data/lib/qiniu/tokens/access_token.rb +23 -0
- data/lib/qiniu/tokens/qbox_token.rb +37 -0
- data/lib/qiniu/tokens/upload_token.rb +37 -0
- data/spec/qiniu/rs_spec.rb +1 -1
- metadata +7 -4
data/Gemfile.lock
CHANGED
data/lib/qiniu/rs.rb
CHANGED
@@ -12,6 +12,9 @@ module Qiniu
|
|
12
12
|
autoload :IO, 'qiniu/rs/io'
|
13
13
|
autoload :RS, 'qiniu/rs/rs'
|
14
14
|
autoload :Image, 'qiniu/rs/image'
|
15
|
+
autoload :AccessToken, 'qiniu/tokens/access_token'
|
16
|
+
autoload :QboxToken, 'qiniu/tokens/qbox_token'
|
17
|
+
autoload :UploadToken, 'qiniu/tokens/upload_token'
|
15
18
|
|
16
19
|
class << self
|
17
20
|
|
@@ -115,8 +118,19 @@ module Qiniu
|
|
115
118
|
Image.preivew_url(url, spec)
|
116
119
|
end
|
117
120
|
|
118
|
-
def generate_upload_token(scope, expires_in, callback_url = nil, return_url = nil)
|
119
|
-
|
121
|
+
#def generate_upload_token(scope, expires_in, callback_url = nil, return_url = nil)
|
122
|
+
# Utils.generate_upload_token(scope, expires_in, callback_url, return_url)
|
123
|
+
#end
|
124
|
+
|
125
|
+
def generate_upload_token(opts = {})
|
126
|
+
token_obj = UploadToken.new(opts)
|
127
|
+
token_obj.access_key = Config.settings[:access_key]
|
128
|
+
token_obj.secret_key = Config.settings[:secret_key]
|
129
|
+
#token_obj.scope = opts[:scope]
|
130
|
+
#token_obj.expires_in = opts[:expires_in]
|
131
|
+
#token_obj.callback_url = opts[:callback_url]
|
132
|
+
#token_obj.return_url = opts[:return_url]
|
133
|
+
token_obj.generate_token
|
120
134
|
end
|
121
135
|
|
122
136
|
end
|
data/lib/qiniu/rs/utils.rb
CHANGED
@@ -151,6 +151,7 @@ module Qiniu
|
|
151
151
|
%Q(#{access_key}:#{encoded_digest})
|
152
152
|
end
|
153
153
|
|
154
|
+
=begin
|
154
155
|
def generate_upload_token(scope, expires_in, callback_url = nil, return_url = nil)
|
155
156
|
access_key = Config.settings[:access_key]
|
156
157
|
secret_key = Config.settings[:secret_key]
|
@@ -163,6 +164,7 @@ module Qiniu
|
|
163
164
|
encoded_digest = urlsafe_base64_encode(hmac.digest)
|
164
165
|
%Q(#{access_key}:#{encoded_digest}:#{signature})
|
165
166
|
end
|
167
|
+
=end
|
166
168
|
|
167
169
|
end
|
168
170
|
end
|
data/lib/qiniu/rs/version.rb
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'hmac-sha1'
|
4
|
+
require 'qiniu/rs/config'
|
5
|
+
require 'qiniu/rs/utils'
|
6
|
+
|
7
|
+
module Qiniu
|
8
|
+
module RS
|
9
|
+
class AccessToken
|
10
|
+
|
11
|
+
include Utils
|
12
|
+
|
13
|
+
attr_accessor :access_key, :secret_key
|
14
|
+
|
15
|
+
def generate_encoded_digest(signature)
|
16
|
+
hmac = HMAC::SHA1.new(@secret_key)
|
17
|
+
hmac.update(signature)
|
18
|
+
urlsafe_base64_encode(hmac.digest)
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'json'
|
4
|
+
require 'qiniu/tokens/access_token'
|
5
|
+
|
6
|
+
module Qiniu
|
7
|
+
module RS
|
8
|
+
class QboxToken < AccessToken
|
9
|
+
|
10
|
+
attr_accessor :url, :params
|
11
|
+
|
12
|
+
def initialize(opts = {})
|
13
|
+
@url = opts[:url]
|
14
|
+
@params = opts[:params]
|
15
|
+
end
|
16
|
+
|
17
|
+
def generate_signature
|
18
|
+
uri = URI.parse(@url)
|
19
|
+
signature = uri.path
|
20
|
+
query_string = uri.query
|
21
|
+
signature += '?' + query_string if !query_string.nil? && !query_string.empty?
|
22
|
+
signature += "\n";
|
23
|
+
if @params.is_a?(Hash)
|
24
|
+
total_param = @params.map { |key, value| key.to_s+"="+value.to_s }
|
25
|
+
signature += total_param.join("&")
|
26
|
+
end
|
27
|
+
signature
|
28
|
+
end
|
29
|
+
|
30
|
+
def generate_token
|
31
|
+
encoded_digest = generate_encoded_digest(signature)
|
32
|
+
%Q(#{@access_key}:#{encoded_digest})
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'json'
|
4
|
+
require 'qiniu/tokens/access_token'
|
5
|
+
require 'qiniu/rs/utils'
|
6
|
+
|
7
|
+
module Qiniu
|
8
|
+
module RS
|
9
|
+
class UploadToken < AccessToken
|
10
|
+
|
11
|
+
include Utils
|
12
|
+
|
13
|
+
attr_accessor :scope, :expires_in, :callback_url, :return_url
|
14
|
+
|
15
|
+
def initialize(opts = {})
|
16
|
+
@scope = opts[:scope]
|
17
|
+
@expires_in = opts[:expires_in]
|
18
|
+
@callback_url = opts[:callback_url]
|
19
|
+
@return_url = opts[:return_url]
|
20
|
+
end
|
21
|
+
|
22
|
+
def generate_signature
|
23
|
+
params = {:scope => @scope, :deadline => Time.now.to_i + @expires_in}
|
24
|
+
params[:callbackUrl] = @callback_url if !@callback_url.nil? && !@calback_url.empty?
|
25
|
+
params[:returnUrl] = @return_url if !@return_url.nil? && !@return_url.empty?
|
26
|
+
urlsafe_base64_encode(params.to_json)
|
27
|
+
end
|
28
|
+
|
29
|
+
def generate_token
|
30
|
+
signature = generate_signature
|
31
|
+
encoded_digest = generate_encoded_digest(signature)
|
32
|
+
%Q(#{@access_key}:#{encoded_digest}:#{signature})
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/spec/qiniu/rs_spec.rb
CHANGED
@@ -151,7 +151,7 @@ module Qiniu
|
|
151
151
|
|
152
152
|
context ".generate_upload_token" do
|
153
153
|
it "should works" do
|
154
|
-
data = Qiniu::RS.generate_upload_token('test_bucket', 3600)
|
154
|
+
data = Qiniu::RS.generate_upload_token({:scope => 'test_bucket', :expires_in => 3600})
|
155
155
|
data.should_not be_empty
|
156
156
|
puts data.inspect
|
157
157
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qiniu-rs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -149,6 +149,9 @@ files:
|
|
149
149
|
- lib/qiniu/rs/rs.rb
|
150
150
|
- lib/qiniu/rs/utils.rb
|
151
151
|
- lib/qiniu/rs/version.rb
|
152
|
+
- lib/qiniu/tokens/access_token.rb
|
153
|
+
- lib/qiniu/tokens/qbox_token.rb
|
154
|
+
- lib/qiniu/tokens/upload_token.rb
|
152
155
|
- qiniu-rs.gemspec
|
153
156
|
- spec/qiniu/rs/auth_spec.rb
|
154
157
|
- spec/qiniu/rs/image_logo_for_test.png
|
@@ -173,7 +176,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
173
176
|
version: '0'
|
174
177
|
segments:
|
175
178
|
- 0
|
176
|
-
hash:
|
179
|
+
hash: -2135467260921136706
|
177
180
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
181
|
none: false
|
179
182
|
requirements:
|
@@ -182,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
182
185
|
version: '0'
|
183
186
|
segments:
|
184
187
|
- 0
|
185
|
-
hash:
|
188
|
+
hash: -2135467260921136706
|
186
189
|
requirements: []
|
187
190
|
rubyforge_project:
|
188
191
|
rubygems_version: 1.8.24
|