mirror of
https://github.com/wahyd4/ruby-sdk.git
synced 2026-08-09 12:56:21 +10:00
Merge branch 'release/v2.1.2'
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
||||
PATH
|
||||
remote: .
|
||||
specs:
|
||||
qiniu-rs (2.1.1)
|
||||
qiniu-rs (2.1.2)
|
||||
json (~> 1.7.3)
|
||||
mime-types (~> 1.19)
|
||||
rest-client (~> 1.6.7)
|
||||
|
||||
+16
-2
@@ -12,6 +12,9 @@ module Qiniu
|
||||
autoload :IO, 'qiniu/rs/io'
|
||||
autoload :RS, 'qiniu/rs/rs'
|
||||
autoload :Image, 'qiniu/rs/image'
|
||||
autoload :AccessToken, 'qiniu/tokens/access_token'
|
||||
autoload :QboxToken, 'qiniu/tokens/qbox_token'
|
||||
autoload :UploadToken, 'qiniu/tokens/upload_token'
|
||||
|
||||
class << self
|
||||
|
||||
@@ -115,8 +118,19 @@ module Qiniu
|
||||
Image.preivew_url(url, spec)
|
||||
end
|
||||
|
||||
def generate_upload_token(scope, expires_in, callback_url = nil, return_url = nil)
|
||||
Utils.generate_upload_token(scope, expires_in, callback_url, return_url)
|
||||
#def generate_upload_token(scope, expires_in, callback_url = nil, return_url = nil)
|
||||
# Utils.generate_upload_token(scope, expires_in, callback_url, return_url)
|
||||
#end
|
||||
|
||||
def generate_upload_token(opts = {})
|
||||
token_obj = UploadToken.new(opts)
|
||||
token_obj.access_key = Config.settings[:access_key]
|
||||
token_obj.secret_key = Config.settings[:secret_key]
|
||||
#token_obj.scope = opts[:scope]
|
||||
#token_obj.expires_in = opts[:expires_in]
|
||||
#token_obj.callback_url = opts[:callback_url]
|
||||
#token_obj.return_url = opts[:return_url]
|
||||
token_obj.generate_token
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -151,6 +151,7 @@ module Qiniu
|
||||
%Q(#{access_key}:#{encoded_digest})
|
||||
end
|
||||
|
||||
=begin
|
||||
def generate_upload_token(scope, expires_in, callback_url = nil, return_url = nil)
|
||||
access_key = Config.settings[:access_key]
|
||||
secret_key = Config.settings[:secret_key]
|
||||
@@ -163,6 +164,7 @@ module Qiniu
|
||||
encoded_digest = urlsafe_base64_encode(hmac.digest)
|
||||
%Q(#{access_key}:#{encoded_digest}:#{signature})
|
||||
end
|
||||
=end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
|
||||
module Qiniu
|
||||
module RS
|
||||
VERSION = "2.1.1"
|
||||
VERSION = "2.1.2"
|
||||
end
|
||||
end
|
||||
|
||||
Executable
+23
@@ -0,0 +1,23 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
|
||||
require 'hmac-sha1'
|
||||
require 'qiniu/rs/config'
|
||||
require 'qiniu/rs/utils'
|
||||
|
||||
module Qiniu
|
||||
module RS
|
||||
class AccessToken
|
||||
|
||||
include Utils
|
||||
|
||||
attr_accessor :access_key, :secret_key
|
||||
|
||||
def generate_encoded_digest(signature)
|
||||
hmac = HMAC::SHA1.new(@secret_key)
|
||||
hmac.update(signature)
|
||||
urlsafe_base64_encode(hmac.digest)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
Executable
+37
@@ -0,0 +1,37 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
|
||||
require 'json'
|
||||
require 'qiniu/tokens/access_token'
|
||||
|
||||
module Qiniu
|
||||
module RS
|
||||
class QboxToken < AccessToken
|
||||
|
||||
attr_accessor :url, :params
|
||||
|
||||
def initialize(opts = {})
|
||||
@url = opts[:url]
|
||||
@params = opts[:params]
|
||||
end
|
||||
|
||||
def generate_signature
|
||||
uri = URI.parse(@url)
|
||||
signature = uri.path
|
||||
query_string = uri.query
|
||||
signature += '?' + query_string if !query_string.nil? && !query_string.empty?
|
||||
signature += "\n";
|
||||
if @params.is_a?(Hash)
|
||||
total_param = @params.map { |key, value| key.to_s+"="+value.to_s }
|
||||
signature += total_param.join("&")
|
||||
end
|
||||
signature
|
||||
end
|
||||
|
||||
def generate_token
|
||||
encoded_digest = generate_encoded_digest(signature)
|
||||
%Q(#{@access_key}:#{encoded_digest})
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
Executable
+37
@@ -0,0 +1,37 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
|
||||
require 'json'
|
||||
require 'qiniu/tokens/access_token'
|
||||
require 'qiniu/rs/utils'
|
||||
|
||||
module Qiniu
|
||||
module RS
|
||||
class UploadToken < AccessToken
|
||||
|
||||
include Utils
|
||||
|
||||
attr_accessor :scope, :expires_in, :callback_url, :return_url
|
||||
|
||||
def initialize(opts = {})
|
||||
@scope = opts[:scope]
|
||||
@expires_in = opts[:expires_in]
|
||||
@callback_url = opts[:callback_url]
|
||||
@return_url = opts[:return_url]
|
||||
end
|
||||
|
||||
def generate_signature
|
||||
params = {:scope => @scope, :deadline => Time.now.to_i + @expires_in}
|
||||
params[:callbackUrl] = @callback_url if !@callback_url.nil? && !@calback_url.empty?
|
||||
params[:returnUrl] = @return_url if !@return_url.nil? && !@return_url.empty?
|
||||
urlsafe_base64_encode(params.to_json)
|
||||
end
|
||||
|
||||
def generate_token
|
||||
signature = generate_signature
|
||||
encoded_digest = generate_encoded_digest(signature)
|
||||
%Q(#{@access_key}:#{encoded_digest}:#{signature})
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -151,7 +151,7 @@ module Qiniu
|
||||
|
||||
context ".generate_upload_token" do
|
||||
it "should works" do
|
||||
data = Qiniu::RS.generate_upload_token('test_bucket', 3600)
|
||||
data = Qiniu::RS.generate_upload_token({:scope => 'test_bucket', :expires_in => 3600})
|
||||
data.should_not be_empty
|
||||
puts data.inspect
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user