oss 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b6ac21fd62a512f849f4479d6ee4e00fc905cac
4
- data.tar.gz: 86d458df9b9f4fdb76ddf236e397a4dce01546b7
3
+ metadata.gz: 53b76dcb6eda5200470085a9a112a9751979dadb
4
+ data.tar.gz: c4cce5232d9eed38d8f0204b7ee1ef0a137c6d06
5
5
  SHA512:
6
- metadata.gz: 8eb1642cba5e9abbe9db0b344d596764a926803e7fdf3bcf16d27b34dec8530940f8c219d020730d1eef80b5552641b7fcd68410032f38a7085d7d9e6a88f7ba
7
- data.tar.gz: 2dbb6f7ca282587052d6f3c28f031e704c0e101ddd87c31c9f19c65a17546fe016b18021ac5868539d602df7649249efdf8f025aabf5c662ac0e6bb7cfee218d
6
+ metadata.gz: 6afc3388fb358c37d7b65ccd75dc853cb42293e48acbd26a0ce0507c7b8aeeb21f922b7295afdf92bd008185e7492fb529b07d85625ec4c460e8b6941d5d4ee5
7
+ data.tar.gz: ee6f7bdeab74380de7850eeff4785f8ae264141b99526ce6873c8ffc0b9e19ec14541c829131e693449edd1d63faaa89cf6b8b0a7d652242a628c3c35740b8c0
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # OSS Ruby SDK
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/oss.svg)](https://badge.fury.io/rb/oss)
4
+
3
5
  Aliyun Open Storage Service Ruby SDK.
4
6
 
5
7
  Being Aliyun-launched cloud storage service for users, the Open Storage Service (OSS for short) features mass capacity, security, high cost-effectiveness and reliability. It enables users to upload or download data to or from any device on the Internet at any time and place, and manage data on the WEB page by using the simple REST interface.
@@ -113,6 +115,18 @@ file.close
113
115
  ```
114
116
  you can find more api options in API Doc `OSS::Object`
115
117
 
118
+ #### 6. Get Object URL
119
+
120
+ ```ruby
121
+ # get default url
122
+ puts @api.get_object_url('bucket_name', 'object_name')
123
+ # get internal url
124
+ puts @api.get_object_url('bucket_name', 'object_name', :from => 'internal')
125
+ # get cdn url
126
+ puts @api.get_object_url('bucket_name', 'object_name', :from => 'cdn', :cdn_domain => 'your.cdn.domain')
127
+ ```
128
+
129
+
116
130
  ## API
117
131
 
118
132
  ### Service Operations
@@ -506,6 +520,23 @@ puts result[:last_modify]
506
520
  puts result[:etag]
507
521
  ```
508
522
 
523
+ #### .get_object_url(bucket_name, object, options)
524
+
525
+ Get an object url from the bucket.
526
+
527
+ parameters:
528
+ - `bucket_name` {String} bucket name
529
+ - `object` {String} object key name
530
+ - `options` {Hash} optional parameters
531
+ - `from` {String} default nil, `internal` get url from ECS internal network, `cdn` get url from custom CDN network
532
+ - `cdn_domain` {String} if `from` set with `cdn`, set your custom CDN domain
533
+
534
+ Success will return url string
535
+
536
+ ```ruby
537
+ puts @api.get_object_url('bucket_name', 'object_name')
538
+ ```
539
+
509
540
  #### .get_object(bucket_name, object, options)
510
541
 
511
542
  Get an object from the bucket.
@@ -896,6 +927,9 @@ result = @api.option_object('bucket_name', 'object_name', 'Origin', 'GET', reque
896
927
  puts result.headers
897
928
  ```
898
929
 
930
+ ## Gem API DOC
931
+ [http://www.rubydoc.info/gems/oss/0.1.4/Oss](http://www.rubydoc.info/gems/oss/0.1.4/Oss)
932
+
899
933
  ## Run Rake Unit Test
900
934
 
901
935
  `id=accessKeyId secret=accessKeyIdSecret rake test -I --order=a`
data/lib/oss/api.rb CHANGED
@@ -186,6 +186,14 @@ module Oss
186
186
  Object.new(@client).get_object(bucket_name, object, options)
187
187
  end
188
188
 
189
+ # params:
190
+ # - bucket_name
191
+ # - object
192
+ # - options
193
+ def get_object_url(bucket_name, object, options = {})
194
+ Object.new(@client).get_object_url(bucket_name, object, options)
195
+ end
196
+
189
197
  # params:
190
198
  # - bucket_name
191
199
  # - object_name
data/lib/oss/client.rb CHANGED
@@ -4,6 +4,7 @@ require 'openssl'
4
4
  require 'base64'
5
5
  require 'nokogiri'
6
6
  require 'oss/error'
7
+ require 'open-uri'
7
8
 
8
9
  module Oss
9
10
 
@@ -98,7 +99,7 @@ module Oss
98
99
  end
99
100
 
100
101
  def request(host, path, headers, as = :xml, &block)
101
- url = "http://#{host}#{path}"
102
+ url = "http://#{host}#{URI::encode(path)}"
102
103
 
103
104
  # send request and rescue errors
104
105
  begin
data/lib/oss/object.rb CHANGED
@@ -98,6 +98,16 @@ module Oss
98
98
  }
99
99
  end
100
100
 
101
+ def get_object_url(bucket_name, object, options = {})
102
+ if options[:from].to_s == 'internal'
103
+ "http://#{bucket_name}.#{client.endpoint.gsub('-internal', '').gsub('.aliyuncs.com', '-internal.aliyuncs.com')}/#{object}"
104
+ elsif options[:from].to_s == 'cdn'
105
+ "http://#{options[:cdn_domain]}/#{object}"
106
+ else
107
+ "http://#{bucket_name}.#{client.endpoint}/#{object}"
108
+ end
109
+ end
110
+
101
111
  def get_object(bucket_name, object, options = {})
102
112
  # set header
103
113
  headers = Util.hash_filter(options, {
data/lib/oss/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Oss
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - RaymondChou
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-11-05 00:00:00.000000000 Z
11
+ date: 2015-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler