qiniu_mini_sdk 0.0.3 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 789efab8c23cc420d7e3dd37cb95e880cc2749f2
4
- data.tar.gz: 4873c86aefb19944ce0497b11d816f4c062250c2
3
+ metadata.gz: 4702d5745c9b30176cabf6e4c36fa1f27b47e605
4
+ data.tar.gz: bcfd6c38858c041903b593052ae5f76ced063e5e
5
5
  SHA512:
6
- metadata.gz: ee84a07faf9ef56a48dcded2834c043f8874f5c68416af3167c52ac535ff44a1473bbac77136c1220ca6c898f9c20165d3dd54fa84e91950a77aa998af26bf18
7
- data.tar.gz: ee55228fb86b0bd307defdda883dc4eaa3a1f9d0f086da3cd2b60b391d37f3258859aba7bd16fff5fb8185fea416fa86eb43ee64755d5bb8f57b3ecc771759db
6
+ metadata.gz: 2698039be3a5d43b454da8d60ede884987711e70071ab1e897dd89a70c9b516d7a32c20d6e1188695f62139a1d74e2aad3dbcedd833c83fc4313c0572911ffd3
7
+ data.tar.gz: 5bf582135d5316acea69b50c016b3c90e4ff0008c44b0be76e4e8624410337d6a38109d7db4e5b3675828319f23d3bb362d6f6532e3d713e32af8cf9fc4dbe8d
data/README.md CHANGED
@@ -35,6 +35,10 @@ qiniu.uptoken
35
35
  # 获取下载地址
36
36
  qiniu = QiniuMiniSdk::Policy.new bucket: '你的buckname', key: '你下载资源的key', expires_in: '有效期,可以不填直接忽略这个参数, 默认为3600秒'
37
37
  qiniu.download_url
38
+
39
+ # 管理token
40
+ qiniu = QiniuMiniSdk::Policy.new url: "http://rs.qiniu.com/delete/#{QiniuMiniSdk::Sign.urlsafe_base64_encode 'test-123123:FuAUJ1D1kqiFSJ8bhJ2ZvfyJj_aH'}"
41
+ qiniu.acctoken
38
42
  ```
39
43
 
40
44
  ## Contributing
@@ -3,6 +3,7 @@ require "qiniu_mini_sdk/version"
3
3
  module QiniuMiniSdk
4
4
  # Your code goes here...
5
5
  autoload :Policy, 'qiniu_mini_sdk/policy'
6
+ autoload :Sign, 'qiniu_mini_sdk/sign'
6
7
 
7
8
  def self.setup
8
9
  QiniuMiniSdk.default
@@ -3,6 +3,7 @@
3
3
  require 'json'
4
4
  require 'base64'
5
5
  require 'openssl'
6
+ require 'uri'
6
7
 
7
8
  module QiniuMiniSdk
8
9
  class Policy
@@ -22,6 +23,13 @@ module QiniuMiniSdk
22
23
  @bucket = bucket
23
24
  end
24
25
 
26
+ def url=(url)
27
+ @url = url
28
+ end
29
+
30
+ def body=(body)
31
+ @body = body
32
+ end
25
33
 
26
34
  def expires_in=(time)
27
35
  @params[:deadline] = Time.now.to_i + time
@@ -33,12 +41,20 @@ module QiniuMiniSdk
33
41
  "#{access_key}:#{encoded_sign}:#{hmac_sha1_sign encoded_put_policy}"
34
42
  end
35
43
 
44
+ def acctoken
45
+ uri = URI.parse(@url)
46
+ query = '?' + uri.query unless uri.query.nil?
47
+ signing_str = "#{uri.path}#{uri.query}\n#{@body}"
48
+ "#{QiniuMiniSdk.access_key}:#{hmac_sha1_sign signing_str}"
49
+ end
50
+
36
51
  def download_url
37
52
  base_url = QiniuMiniSdk.urls[@bucket] || "http://#{@bucket}.qiniudn.com"
38
53
  url = "#{base_url}/#{@key}?e=#{@params[:deadline]}"
39
54
  "#{url}&token=#{QiniuMiniSdk.access_key}:#{hmac_sha1_sign url}"
40
55
  end
41
56
 
57
+
42
58
  def method_missing(meth, *args, &blk)
43
59
  if meth =~ /(.+)=/
44
60
  @params[$1.to_s] = args.first
@@ -63,7 +79,7 @@ module QiniuMiniSdk
63
79
  end
64
80
 
65
81
  def default
66
- raise "没有指定bucket" if @bucket.nil?
82
+ raise "没有指定bucket" if @bucket.nil? && @url.nil?
67
83
  self.expires_in = 3600 if @params[:deadline].nil?
68
84
  @params[:scope] = "#{@bucket}:#{@key}" unless @key.nil?
69
85
  @params[:scope] = "#{@bucket}" if @key.nil?
@@ -0,0 +1,13 @@
1
+ module QiniuMiniSdk
2
+ module Sign
3
+ module_function
4
+ def urlsafe_base64_encode content
5
+ Base64.encode64(content).strip.gsub('+', '-').gsub('/','_').gsub(/\r?\n/, '')
6
+ end
7
+
8
+ def hmac_sha1_sign(data)
9
+ digest = OpenSSL::Digest.new('sha1')
10
+ urlsafe_base64_encode OpenSSL::HMAC.digest(digest, QiniuMiniSdk.secret_key, data)
11
+ end
12
+ end
13
+ end
@@ -1,3 +1,3 @@
1
1
  module QiniuMiniSdk
2
- VERSION = "0.0.3"
2
+ VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qiniu_mini_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - mjason
@@ -52,6 +52,7 @@ files:
52
52
  - Rakefile
53
53
  - lib/qiniu_mini_sdk.rb
54
54
  - lib/qiniu_mini_sdk/policy.rb
55
+ - lib/qiniu_mini_sdk/sign.rb
55
56
  - lib/qiniu_mini_sdk/version.rb
56
57
  - qiniu_mini_sdk.gemspec
57
58
  homepage: https://github.com/mjason/qiniu_mini_sdk