sndacs 0.2.2 → 0.2.3
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/README.rdoc +6 -0
- data/lib/sndacs/connection.rb +7 -1
- data/lib/sndacs/object.rb +46 -23
- data/lib/sndacs/version.rb +1 -1
- data/lib/sndacs.rb +1 -0
- metadata +4 -4
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -101,6 +101,12 @@ set bucket public
|
|
101
101
|
Get a temporary url to the object that expires on the timestamp given.Defaults to 1hour expire time
|
102
102
|
object.temporary_url( Time.now + 60 )
|
103
103
|
|
104
|
+
=== Get url to a public accessible object
|
105
|
+
|
106
|
+
Get a url to a public accessible object,the url only work when the object is public accessible
|
107
|
+
|
108
|
+
object.url( public_accessible = true)
|
109
|
+
|
104
110
|
=== Delete an object
|
105
111
|
|
106
112
|
object.destroy
|
data/lib/sndacs/connection.rb
CHANGED
@@ -149,7 +149,7 @@ module Sndacs
|
|
149
149
|
:x_snda_copy_source_if_none_match,
|
150
150
|
:x_snda_copy_source_if_unmodified_since,
|
151
151
|
:x_snda_copy_source_if_modified_since]
|
152
|
-
|
152
|
+
user_meta_data_prefix = "x-snda-meta-"
|
153
153
|
parsed_headers = {}
|
154
154
|
if headers
|
155
155
|
headers.each do |key, value|
|
@@ -163,6 +163,12 @@ module Sndacs
|
|
163
163
|
end
|
164
164
|
|
165
165
|
parsed_headers[parsed_key] = parsed_value
|
166
|
+
else
|
167
|
+
parsed_key = key.to_s.gsub("_","-")
|
168
|
+
if parsed_key[0,user_meta_data_prefix.length] === user_meta_data_prefix
|
169
|
+
parsed_headers[parsed_key] = value
|
170
|
+
end
|
171
|
+
|
166
172
|
end
|
167
173
|
end
|
168
174
|
end
|
data/lib/sndacs/object.rb
CHANGED
@@ -72,24 +72,25 @@ module Sndacs
|
|
72
72
|
end
|
73
73
|
|
74
74
|
# Saves the object, returns true if successfull.
|
75
|
-
|
76
|
-
|
75
|
+
# ==== Options
|
76
|
+
# request headers
|
77
77
|
|
78
|
+
def save(options = {})
|
79
|
+
put_object(options)
|
78
80
|
true
|
79
81
|
end
|
80
82
|
|
81
|
-
#
|
83
|
+
# copies the file from another key and/or bucket.
|
82
84
|
#
|
83
85
|
# ==== Options
|
84
|
-
# * <tt>:key</tt> -
|
85
|
-
# * <tt>:bucket</tt> -
|
86
|
-
#
|
87
|
-
#
|
88
|
-
# "public-read")
|
89
|
-
# * <tt>:content_type</tt> - Content type of the copied object
|
90
|
-
# (default: "application/octet-stream")
|
86
|
+
# * <tt>:key</tt> - key for copy
|
87
|
+
# * <tt>:bucket</tt> - bucket's name which the source file stored
|
88
|
+
# * <tt>:x_snda_metadata..</tt> - params for copy which is not nessary
|
89
|
+
#
|
91
90
|
def copy(options = {})
|
92
91
|
copy_object(options)
|
92
|
+
retrieve
|
93
|
+
true
|
93
94
|
end
|
94
95
|
|
95
96
|
# Destroys the file on the server
|
@@ -155,7 +156,7 @@ module Sndacs
|
|
155
156
|
headers = {}
|
156
157
|
|
157
158
|
#headers[:x_snda_acl] = options[:acl] || acl || "public-read"
|
158
|
-
headers[:content_type] = options[:content_type] || content_type ||
|
159
|
+
headers[:content_type] = options[:content_type] || content_type || content_type_for_key
|
159
160
|
headers[:content_encoding] = options[:content_encoding] if options[:content_encoding]
|
160
161
|
headers[:content_disposition] = options[:content_disposition] if options[:content_disposition]
|
161
162
|
headers[:cache_control] = options[:cache_control] if options[:cache_control]
|
@@ -165,9 +166,10 @@ module Sndacs
|
|
165
166
|
headers[:x_snda_copy_source_if_none_match] = options[:if_none_match] if options[:if_none_match]
|
166
167
|
headers[:x_snda_copy_source_if_unmodified_since] = options[:if_modified_since] if options[:if_modified_since]
|
167
168
|
headers[:x_snda_copy_source_if_modified_since] = options[:if_unmodified_since] if options[:if_unmodified_since]
|
168
|
-
|
169
|
+
headers = merge_usermetadata_toheader(options,headers)
|
169
170
|
response = object_request(:put,:headers => headers)
|
170
|
-
response.body
|
171
|
+
#response.body
|
172
|
+
#true
|
171
173
|
end
|
172
174
|
|
173
175
|
def get_object(options = {})
|
@@ -188,10 +190,11 @@ module Sndacs
|
|
188
190
|
end
|
189
191
|
end
|
190
192
|
|
191
|
-
def put_object
|
192
|
-
response = object_request(:put, :body => content, :headers => dump_headers)
|
193
|
+
def put_object(options={})
|
194
|
+
response = object_request(:put, :body => content, :headers => dump_headers(options))
|
193
195
|
|
194
196
|
parse_headers(response)
|
197
|
+
retrieve
|
195
198
|
end
|
196
199
|
|
197
200
|
def delete_object(options = {})
|
@@ -227,17 +230,37 @@ module Sndacs
|
|
227
230
|
end
|
228
231
|
end
|
229
232
|
|
230
|
-
def
|
233
|
+
def content_type_for_key
|
234
|
+
if mime_type = MIME::Types.type_for(key).first
|
235
|
+
mime_type.content_type
|
236
|
+
else
|
237
|
+
"application/octet-stream"
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
def dump_headers(options={})
|
231
242
|
headers = {}
|
232
|
-
headers[:x_snda_acl] = @acl || "public-read"
|
233
|
-
headers[:x_snda_storage_class] = @storage_class || "STANDARD"
|
234
|
-
headers[:content_type] = @content_type ||
|
235
|
-
headers[:content_encoding] = @content_encoding if @content_encoding
|
236
|
-
headers[:content_disposition] = @content_disposition if @content_disposition
|
237
|
-
headers[:cache_control] = @cache_control if @cache_control
|
243
|
+
#headers[:x_snda_acl] = @acl || "public-read"
|
244
|
+
#headers[:x_snda_storage_class] = @storage_class || "STANDARD"
|
245
|
+
headers[:content_type] = options[:content_type] || @content_type || content_type_for_key
|
246
|
+
headers[:content_encoding] = options[:content_encoding] || @content_encoding if @content_encoding
|
247
|
+
headers[:content_disposition] = options[:content_disposition] || @content_disposition if @content_disposition
|
248
|
+
headers[:cache_control] = options[:cache_control] || @cache_control if @cache_control
|
249
|
+
headers = merge_usermetadata_toheader(options,headers)
|
238
250
|
headers
|
239
251
|
end
|
240
|
-
|
252
|
+
|
253
|
+
def merge_usermetadata_toheader(options,headers)
|
254
|
+
user_meta_data_prefix = "x-snda-meta-"
|
255
|
+
options.each do |key,value|
|
256
|
+
parse_key = key.to_s.gsub("_","-").downcase
|
257
|
+
if parse_key[0,user_meta_data_prefix.length] === user_meta_data_prefix
|
258
|
+
headers[parse_key] = value
|
259
|
+
end
|
260
|
+
end
|
261
|
+
headers
|
262
|
+
end
|
263
|
+
|
241
264
|
def parse_headers(response)
|
242
265
|
@metadata = response.to_hash.select { |k, v| k.to_s.start_with?("x-snda-meta") }
|
243
266
|
self.etag = response["etag"] if response.key?("etag")
|
data/lib/sndacs/version.rb
CHANGED
data/lib/sndacs.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sndacs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 3
|
10
|
+
version: 0.2.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- LI Daobing
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-09-
|
18
|
+
date: 2012-09-06 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: proxies
|