uber-s3 0.1.7 → 0.1.8
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/lib/uber-s3/authorization.rb +2 -2
- data/lib/uber-s3/object.rb +22 -2
- data/lib/uber-s3/operation/object/meta.rb +1 -0
- data/lib/uber-s3/version.rb +1 -1
- metadata +9 -9
@@ -9,10 +9,10 @@ class UberS3
|
|
9
9
|
req_canonical_resource = "/#{client.bucket}/#{path}".split('?').first
|
10
10
|
req_canonical_amz_headers = ''
|
11
11
|
|
12
|
-
headers.keys.select {|k| k =~ /^x-amz
|
12
|
+
headers.keys.sort.select {|k| k =~ /^x-amz-/ }.each do |amz_key|
|
13
13
|
req_canonical_amz_headers << amz_key+':'+headers[amz_key]+"\n"
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
canonical_string_to_sign = "#{req_verb}\n"+
|
17
17
|
"#{req_content_md5}\n"+
|
18
18
|
"#{req_content_type}\n"+
|
data/lib/uber-s3/object.rb
CHANGED
@@ -9,7 +9,7 @@ class UberS3
|
|
9
9
|
include Operation::Object::Meta
|
10
10
|
include Operation::Object::StorageClass
|
11
11
|
|
12
|
-
attr_accessor :bucket, :key, :value, :size, :error
|
12
|
+
attr_accessor :bucket, :key, :response, :value, :size, :error
|
13
13
|
|
14
14
|
def initialize(bucket, key, value=nil, options={})
|
15
15
|
self.bucket = bucket
|
@@ -30,9 +30,24 @@ class UberS3
|
|
30
30
|
def exists?
|
31
31
|
bucket.connection.head(key).status == 200
|
32
32
|
end
|
33
|
+
|
34
|
+
def head
|
35
|
+
bucket.connection.head(key)
|
36
|
+
end
|
33
37
|
|
34
38
|
def fetch
|
35
|
-
self.
|
39
|
+
self.response = bucket.connection.get(key)
|
40
|
+
self.value = response.body
|
41
|
+
|
42
|
+
# Meta..
|
43
|
+
self.meta ||= {}
|
44
|
+
response.header.keys.sort.select {|k| k =~ /^x-amz-meta-/ }.each do |amz_key|
|
45
|
+
# TODO.. value is an array.. meaning a meta attribute can have multiple values
|
46
|
+
meta[amz_key.gsub(/^x-amz-meta-/, '')] = response.header[amz_key].first
|
47
|
+
|
48
|
+
# TODO.. em-http adapters return headers that look like X_AMZ_META_ .. very annoying.
|
49
|
+
end
|
50
|
+
|
36
51
|
self
|
37
52
|
end
|
38
53
|
|
@@ -71,6 +86,11 @@ class UberS3
|
|
71
86
|
if !storage_class.nil?
|
72
87
|
headers['x-amz-storage-class'] = storage_class.to_s.upcase
|
73
88
|
end
|
89
|
+
|
90
|
+
# Meta
|
91
|
+
if !meta.nil? && !meta.empty?
|
92
|
+
meta.each {|k,v| headers["x-amz-meta-#{k}"] = v }
|
93
|
+
end
|
74
94
|
|
75
95
|
# Let's do it
|
76
96
|
response = bucket.connection.put(key, headers, value)
|
data/lib/uber-s3/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uber-s3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-03-21 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mime-types
|
16
|
-
requirement: &
|
16
|
+
requirement: &70252802210360 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '1.17'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70252802210360
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: net-http-persistent
|
27
|
-
requirement: &
|
27
|
+
requirement: &70252802209240 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '2.5'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70252802209240
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &70252802208760 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70252802208760
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &70252802207340 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: 2.7.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70252802207340
|
58
58
|
description: A simple & very fast S3 client supporting sync / async HTTP adapters
|
59
59
|
email:
|
60
60
|
- peter@nulayer.com
|