module Qiniu::Auth
Constants
- DEFAULT_AUTH_SECONDS
- EMPTY_ARGS
Public Class Methods
calculate_deadline(expires_in, deadline = nil)
click to toggle source
# File lib/qiniu/auth.rb, line 13 def calculate_deadline(expires_in, deadline = nil) ### 授权期计算 if expires_in.is_a?(Integer) && expires_in > 0 then # 指定相对时间,单位:秒 return Time.now.to_i + expires_in elsif deadline.is_a?(Integer) then # 指定绝对时间,常用于调试和单元测试 return deadline end # 默认授权期1小时 return Time.now.to_i + DEFAULT_AUTH_SECONDS end
generate_acctoken(url, body = '')
click to toggle source
# File lib/qiniu/auth.rb, line 177 def generate_acctoken(url, body = '') ### 提取AK/SK信息 access_key = Config.settings[:access_key] secret_key = Config.settings[:secret_key] ### 解析URL,生成待签名字符串 uri = URI.parse(url) signing_str = uri.path # 如有QueryString部分,则需要加上 query_string = uri.query if query_string.is_a?(String) && !query_string.empty? signing_str += '?' + query_string end # 追加换行符 signing_str += "\n" # 如果有Body,则也加上 # (仅限于mime == "application/x-www-form-urlencoded"的情况) if body.is_a?(String) && !body.empty? signing_str += body end ### 生成数字签名 sign = HMAC::SHA1.new(secret_key).update(signing_str).digest encoded_sign = Utils.urlsafe_base64_encode(sign) ### 生成管理授权凭证 acctoken = "#{access_key}:#{encoded_sign}" ### 返回管理授权凭证 return acctoken end
generate_uptoken(put_policy)
click to toggle source
# File lib/qiniu/auth.rb, line 212 def generate_uptoken(put_policy) ### 提取AK/SK信息 access_key = Config.settings[:access_key] secret_key = Config.settings[:secret_key] ### 生成待签名字符串 encoded_put_policy = Utils.urlsafe_base64_encode(put_policy.to_json) ### 生成数字签名 sign = HMAC::SHA1.new(secret_key).update(encoded_put_policy).digest encoded_sign = Utils.urlsafe_base64_encode(sign) ### 生成上传授权凭证 uptoken = "#{access_key}:#{encoded_sign}:#{encoded_put_policy}" ### 返回上传授权凭证 return uptoken end