s3 0.3.10 → 0.3.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- s3 (0.3.10)
4
+ s3 (0.3.11)
5
5
  proxies (~> 0.2.0)
6
6
 
7
7
  GEM
@@ -1,60 +1,60 @@
1
- # S3
1
+ = S3
2
2
 
3
- S3 library provides access to [Amazon's Simple Storage Service](http://aws.amazon.com/s3/).
3
+ S3 library provides access to {Amazon's Simple Storage Service}[http://aws.amazon.com/s3/].
4
4
 
5
- It supports both: European and US buckets through the [REST API](http://docs.amazonwebservices.com/AmazonS3/latest/API/APIRest.html).
5
+ It supports both: European and US buckets through the {REST API}[http://docs.amazonwebservices.com/AmazonS3/latest/API/APIRest.html].
6
6
 
7
- ## Installation
7
+ == Installation
8
8
 
9
9
  gem install s3
10
10
 
11
- ## Usage
11
+ == Usage
12
12
 
13
- ### Initialize the service
13
+ === Initialize the service
14
14
 
15
15
  require "s3"
16
16
  service = S3::Service.new(:access_key_id => "...",
17
17
  :secret_access_key => "...")
18
18
  #=> #<S3::Service:...>
19
19
 
20
- ### List buckets
20
+ === List buckets
21
21
 
22
22
  service.buckets
23
23
  #=> [#<S3::Bucket:first-bucket>,
24
24
  # #<S3::Bucket:second-bucket>]
25
25
 
26
- ### Find bucket
26
+ === Find bucket
27
27
 
28
28
  first_bucket = service.buckets.find("first-bucket")
29
29
  #=> #<S3::Bucket:first-bucket>
30
30
 
31
- ### List objects in a bucket
31
+ === List objects in a bucket
32
32
 
33
33
  first_bucket.objects
34
34
  #=> [#<S3::Object:/first-bucket/lenna.png>,
35
35
  # #<S3::Object:/first-bucket/lenna_mini.png>]
36
36
 
37
- ### Find object in a bucket
37
+ === Find object in a bucket
38
38
 
39
39
  object = first_bucket.objects.find("lenna.png")
40
40
  #=> #<S3::Object:/first-bucket/lenna.png>
41
41
 
42
- ### Access object metadata (cached from find)
42
+ === Access object metadata (cached from find)
43
43
 
44
44
  object.content_type
45
45
  #=> "image/png"
46
46
 
47
- ### Access object content (downloads the object)
47
+ === Access object content (downloads the object)
48
48
 
49
49
  object.content
50
50
  #=> "\x89PNG\r\n\x1A\n\x00\x00\x00\rIHDR\x00..."
51
51
 
52
- ### Delete an object
52
+ === Delete an object
53
53
 
54
54
  object.destroy
55
55
  #=> true
56
56
 
57
- ### Create an object
57
+ === Create an object
58
58
 
59
59
  new_object = bucket.objects.build("bender.png")
60
60
  #=> #<S3::Object:/synergy-staging/bender.png>
@@ -67,13 +67,13 @@ It supports both: European and US buckets through the [REST API](http://docs.ama
67
67
  Please note that new objects are created with "public-read" ACL by
68
68
  default.
69
69
 
70
- ## See also
70
+ == See also
71
71
 
72
- * [gemcutter](http://gemcutter.org/gems/s3)
73
- * [repository](http://github.com/qoobaa/s3)
74
- * [issue tracker](http://github.com/qoobaa/s3/issues)
75
- * [documentation](http://qoobaa.github.com/s3)
72
+ * rubygems[http://rubygems.org/gems/s3]
73
+ * repository[http://github.com/qoobaa/s3]
74
+ * {issue tracker}[http://github.com/qoobaa/s3/issues]
75
+ * documentation[http://rubydoc.info/github/qoobaa/s3/master/frames]
76
76
 
77
- ## Copyright
77
+ == Copyright
78
78
 
79
- Copyright (c) 2009 Jakub Kuźma, Mirosław Boruta. See [LICENSE](http://github.com/qoobaa/s3/raw/master/LICENSE) for details.
79
+ Copyright (c) 2009 Jakub Kuźma, Mirosław Boruta. See LICENSE[http://github.com/qoobaa/s3/raw/master/LICENSE] for details.
@@ -6,7 +6,7 @@ module S3
6
6
  extend Forwardable
7
7
 
8
8
  attr_accessor :content_type, :content_disposition, :content_encoding, :cache_control
9
- attr_reader :last_modified, :etag, :size, :bucket, :key, :acl, :storage_class
9
+ attr_reader :last_modified, :etag, :size, :bucket, :key, :acl, :storage_class, :metadata
10
10
  attr_writer :content
11
11
 
12
12
  def_instance_delegators :bucket, :name, :service, :bucket_request, :vhost?, :host, :path_prefix
@@ -235,6 +235,7 @@ module S3
235
235
  end
236
236
 
237
237
  def parse_headers(response)
238
+ @metadata = response.to_hash.select { |k, v| k.to_s.start_with?("x-amz-meta") }
238
239
  self.etag = response["etag"] if response.key?("etag")
239
240
  self.content_type = response["content-type"] if response.key?("content-type")
240
241
  self.content_disposition = response["content-disposition"] if response.key?("content-disposition")
@@ -1,3 +1,3 @@
1
1
  module S3
2
- VERSION = "0.3.10"
2
+ VERSION = "0.3.11"
3
3
  end
@@ -22,6 +22,7 @@ class ObjectTest < Test::Unit::TestCase
22
22
  @response_binary["content-encoding"] = nil
23
23
  @response_binary["last-modified"] = Time.now.httpdate
24
24
  @response_binary["content-length"] = 20
25
+ @response_binary["x-amz-meta-test"] = "metadata"
25
26
 
26
27
  @xml_body = <<-EOXML
27
28
  <?xml version="1.0" encoding="UTF-8"?>
@@ -132,6 +133,14 @@ class ObjectTest < Test::Unit::TestCase
132
133
  assert @object_lena.retrieve
133
134
  end
134
135
 
136
+ test "retrieve headers" do
137
+ @object_lena.expects(:object_request).twice.with(:head, {}).returns(@response_binary)
138
+ assert @object_lena.retrieve
139
+
140
+ meta = {"x-amz-meta-test" => ["metadata"]}
141
+ assert_equal meta, @object_lena.retrieve.metadata
142
+ end
143
+
135
144
  test "exists" do
136
145
  @object_lena.expects(:retrieve).returns(true)
137
146
  assert @object_lena.exists?
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.10
4
+ version: 0.3.11
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-16 00:00:00.000000000 Z
12
+ date: 2011-12-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: proxies
16
- requirement: &10828500 !ruby/object:Gem::Requirement
16
+ requirement: &6899940 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.2.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *10828500
24
+ version_requirements: *6899940
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: test-unit
27
- requirement: &10827960 !ruby/object:Gem::Requirement
27
+ requirement: &6952760 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '2.0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *10827960
35
+ version_requirements: *6952760
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: mocha
38
- requirement: &10827580 !ruby/object:Gem::Requirement
38
+ requirement: &6952100 !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: *10827580
46
+ version_requirements: *6952100
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &10827020 !ruby/object:Gem::Requirement
49
+ requirement: &6950720 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 1.0.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *10827020
57
+ version_requirements: *6950720
58
58
  description: ! 'S3 library provides access to Amazon''s Simple Storage Service. It
59
59
  supports both: European and US buckets through REST API.'
60
60
  email:
@@ -67,7 +67,7 @@ files:
67
67
  - Gemfile
68
68
  - Gemfile.lock
69
69
  - LICENSE
70
- - README.md
70
+ - README.rdoc
71
71
  - Rakefile
72
72
  - lib/s3.rb
73
73
  - lib/s3/bucket.rb
@@ -100,6 +100,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
100
100
  - - ! '>='
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
+ segments:
104
+ - 0
105
+ hash: -3173124590106976282
103
106
  required_rubygems_version: !ruby/object:Gem::Requirement
104
107
  none: false
105
108
  requirements: