s3 0.3.22 → 0.3.23
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/Gemfile.lock +1 -1
- data/README.rdoc +4 -3
- data/lib/s3/bucket.rb +3 -3
- data/lib/s3/object.rb +4 -4
- data/lib/s3/service.rb +4 -1
- data/lib/s3/version.rb +1 -1
- data/test/bucket_test.rb +4 -4
- data/test/object_test.rb +4 -4
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
OWVjNTUwZjFiZDU5NzI3NmEwNWFjNWU1YjMzNmVhNWJlOWVhZTZkMA==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7ea0ee1684b02cf5fcadc99748bf330317abb957
|
4
|
+
data.tar.gz: c48ded25b29a209253cb2b09ae1d4ae192df2373
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
MzhkZjRiZDRiNzFiMDU0ZDZjMDRlNDliMDlkYzZhYWE2YjMzZmVkYzdlZWU0
|
11
|
-
OTM4Y2RlZDhmYjhmNWY4MjYwMjI2OGQzMzYzZWYwOGJjMjhkNzM=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MGU3NzgwOGZlMmUzMzkxMWE0OGEyMmI0Y2I5ZGNjMWVjZDcwZmQwMzkwZTAz
|
14
|
-
MGI4ZThjZjA1MWNjM2YwMGJmOWJlYzExNjkzYjFhZDc2OGY4OWRjMzk0NmYw
|
15
|
-
MGRiNzVjMDhjOTRjODllYzIwZDIxZmM5YThmNjNjYWIwMjZhMDk=
|
6
|
+
metadata.gz: 343cfa6f0cd5997536fcf18a3c1d839de3bfc417a205e62f25531b4b24fa58daa45ebce5809a1f3315b4ad72de6b617cef74752d15cbff674207e732930c5275
|
7
|
+
data.tar.gz: 3a7fe5f9c902779776e462008da107adca6fadcb9acffac771d84864f692851581bd431b71116c2e7c6711b2e8bf38c766e5132322f3712aff173e2f3fab8332
|
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -75,7 +75,7 @@ Please refer to: http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictio
|
|
75
75
|
new_object.save
|
76
76
|
#=> true
|
77
77
|
|
78
|
-
Please note that new objects are created with "
|
78
|
+
Please note that new objects are created with "private" ACL by
|
79
79
|
default.
|
80
80
|
|
81
81
|
=== Fetch ACL
|
@@ -88,13 +88,14 @@ This will return hash with all users/groups and theirs permissions
|
|
88
88
|
=== Modify ACL
|
89
89
|
|
90
90
|
object = bucket.objects.find("lenna.png")
|
91
|
-
object.copy(:key => "lenna.png", :bucket => bucket, :acl => :
|
91
|
+
object.copy(:key => "lenna.png", :bucket => bucket, :acl => :public_read)
|
92
92
|
|
93
93
|
=== Upload file direct to amazon
|
94
94
|
|
95
95
|
==== Rails 3
|
96
96
|
|
97
|
-
|
97
|
+
Check the {example in this gist}[https://gist.github.com/3169039], which describes how to use
|
98
|
+
a simple form element to upload files directly to S3.
|
98
99
|
|
99
100
|
== See also
|
100
101
|
|
data/lib/s3/bucket.rb
CHANGED
@@ -40,7 +40,7 @@ module S3
|
|
40
40
|
end
|
41
41
|
|
42
42
|
# Assigns a new ACL to the bucket. Please note that ACL is not
|
43
|
-
# retrieved from the server and set to "
|
43
|
+
# retrieved from the server and set to "private" by default.
|
44
44
|
#
|
45
45
|
# Valid Values: :private | :public_read | :public_read_write | authenticated_read
|
46
46
|
#
|
@@ -94,7 +94,7 @@ module S3
|
|
94
94
|
# name. If the bucket contains characters like underscore it can't
|
95
95
|
# be used as +VHOST+ (e.g. <tt>bucket_name.s3.amazonaws.com</tt>)
|
96
96
|
def vhost?
|
97
|
-
!service.use_ssl && "#@name.#{HOST}" =~ /\A#{URI::REGEXP::PATTERN::HOSTNAME}\Z/
|
97
|
+
!service.use_ssl && service.use_vhost && "#@name.#{HOST}" =~ /\A#{URI::REGEXP::PATTERN::HOSTNAME}\Z/
|
98
98
|
end
|
99
99
|
|
100
100
|
# Returns host name of the bucket according (see #vhost? method)
|
@@ -131,7 +131,7 @@ module S3
|
|
131
131
|
def save_acl(options = {})
|
132
132
|
headers = {}
|
133
133
|
headers[:content_length] = 0
|
134
|
-
headers[:x_amz_acl] = options[:acl] || acl || "
|
134
|
+
headers[:x_amz_acl] = options[:acl] || acl || "private"
|
135
135
|
|
136
136
|
bucket_request(:put, :headers => headers, :path => name)
|
137
137
|
end
|
data/lib/s3/object.rb
CHANGED
@@ -33,7 +33,7 @@ module S3
|
|
33
33
|
end
|
34
34
|
|
35
35
|
# Assigns a new ACL to the object. Please note that ACL is not
|
36
|
-
# retrieved from the server and set to "
|
36
|
+
# retrieved from the server and set to "private" by default.
|
37
37
|
#
|
38
38
|
# ==== Example
|
39
39
|
# object.acl = :public_read
|
@@ -102,7 +102,7 @@ module S3
|
|
102
102
|
# * <tt>:bucket</tt> - New bucket to store object in (instance of
|
103
103
|
# S3::Bucket)
|
104
104
|
# * <tt>:acl</tt> - ACL of the copied object (default:
|
105
|
-
# "
|
105
|
+
# "private")
|
106
106
|
# * <tt>:content_type</tt> - Content type of the copied object
|
107
107
|
# (default: "application/octet-stream")
|
108
108
|
def copy(options = {})
|
@@ -156,7 +156,7 @@ module S3
|
|
156
156
|
|
157
157
|
headers = {}
|
158
158
|
|
159
|
-
headers[:x_amz_acl] = options[:acl] || acl || "
|
159
|
+
headers[:x_amz_acl] = options[:acl] || acl || "private"
|
160
160
|
headers[:content_type] = options[:content_type] || content_type || "application/octet-stream"
|
161
161
|
headers[:content_encoding] = options[:content_encoding] if options[:content_encoding]
|
162
162
|
headers[:content_disposition] = options[:content_disposition] if options[:content_disposition]
|
@@ -232,7 +232,7 @@ module S3
|
|
232
232
|
|
233
233
|
def dump_headers
|
234
234
|
headers = {}
|
235
|
-
headers[:x_amz_acl] = @acl || "
|
235
|
+
headers[:x_amz_acl] = @acl || "private"
|
236
236
|
headers[:x_amz_storage_class] = @storage_class || "STANDARD"
|
237
237
|
headers[:content_type] = @content_type || "application/octet-stream"
|
238
238
|
headers[:content_encoding] = @content_encoding if @content_encoding
|
data/lib/s3/service.rb
CHANGED
@@ -3,7 +3,7 @@ module S3
|
|
3
3
|
include Parser
|
4
4
|
include Proxies
|
5
5
|
|
6
|
-
attr_reader :access_key_id, :secret_access_key, :use_ssl, :proxy
|
6
|
+
attr_reader :access_key_id, :secret_access_key, :use_ssl, :use_vhost, :proxy
|
7
7
|
|
8
8
|
# Compares service to other, by <tt>access_key_id</tt> and
|
9
9
|
# <tt>secret_access_key</tt>
|
@@ -18,6 +18,8 @@ module S3
|
|
18
18
|
# * <tt>:secret_access_key</tt> - Secret access key (REQUIRED)
|
19
19
|
# * <tt>:use_ssl</tt> - Use https or http protocol (false by
|
20
20
|
# default)
|
21
|
+
# * <tt>:use_vhost</tt> - Use bucket.s3.amazonaws.com or s3.amazonaws.com/bucket (true by
|
22
|
+
# default)
|
21
23
|
# * <tt>:debug</tt> - Display debug information on the STDOUT
|
22
24
|
# (false by default)
|
23
25
|
# * <tt>:timeout</tt> - Timeout to use by the Net::HTTP object
|
@@ -26,6 +28,7 @@ module S3
|
|
26
28
|
@access_key_id = options.fetch(:access_key_id)
|
27
29
|
@secret_access_key = options.fetch(:secret_access_key)
|
28
30
|
@use_ssl = options.fetch(:use_ssl, false)
|
31
|
+
@use_vhost = options.fetch(:use_vhost, true)
|
29
32
|
@timeout = options.fetch(:timeout, 60)
|
30
33
|
@debug = options.fetch(:debug, false)
|
31
34
|
|
data/lib/s3/version.rb
CHANGED
data/test/bucket_test.rb
CHANGED
@@ -3,7 +3,7 @@ require "test_helper"
|
|
3
3
|
class BucketTest < Test::Unit::TestCase
|
4
4
|
def setup
|
5
5
|
@bucket_vhost = S3::Bucket.send(:new, S3::Service.new(access_key_id: 'test', secret_access_key: 'secret'), "Data-Bucket")
|
6
|
-
@bucket_path = S3::Bucket.send(:new, S3::Service.new(access_key_id: 'test', secret_access_key: 'secret'), "Data_Bucket")
|
6
|
+
@bucket_path = S3::Bucket.send(:new, S3::Service.new(access_key_id: 'test', secret_access_key: 'secret', use_vhost: false), "Data_Bucket")
|
7
7
|
@secure_bucket = S3::Bucket.send(:new, S3::Service.new(access_key_id: 'test', secret_access_key: 'secret', use_ssl: true), "Data-Secured")
|
8
8
|
@bucket = @bucket_vhost
|
9
9
|
|
@@ -36,7 +36,7 @@ class BucketTest < Test::Unit::TestCase
|
|
36
36
|
S3::Object.send(:new, @bucket, :key => "prefix/"),
|
37
37
|
S3::Object.send(:new, @bucket, :key => "prefix/obj3")
|
38
38
|
]
|
39
|
-
|
39
|
+
|
40
40
|
@objects_list_prefix = [
|
41
41
|
S3::Object.send(:new, @bucket, :key => "prefix/"),
|
42
42
|
S3::Object.send(:new, @bucket, :key => "prefix/obj3")
|
@@ -55,11 +55,11 @@ class BucketTest < Test::Unit::TestCase
|
|
55
55
|
|
56
56
|
@response_objects_list = Net::HTTPOK.new("1.1", "200", "OK")
|
57
57
|
@response_objects_list.stubs(:body).returns(@response_objects_list_body)
|
58
|
-
|
58
|
+
|
59
59
|
@response_objects_list_body_prefix = <<-EOObjectsPrefix
|
60
60
|
<?xml version="1.0" encoding="UTF-8"?>\n<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Name>bucket</Name> <Prefix>prefix</Prefix> <Marker></Marker> <MaxKeys>1000</MaxKeys> <IsTruncated>false</IsTruncated> <Contents> <Key>prefix/</Key> <LastModified>2009-07-03T10:17:33.000Z</LastModified> <ETag>"99519cdf14c255e580e1b7bca85a458c"</ETag> <Size>1729</Size> <Owner> <ID>df864aeb6f42be43f1d9e60aaabe3f15e245b035a4b79d1cfe36c4deaec67205</ID> <DisplayName>owner</DisplayName> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> <Contents> <Key>prefix/obj3</Key> <LastModified>2009-07-03T10:17:33.000Z</LastModified> <ETag>"99519cdf14c255e580e1b7bca85a458c"</ETag> <Size>1729</Size> <Owner> <ID>df864aeb6f42be43f1d9e60aaabe3f15e245b035a4b79d1cfe36c4deaec67205</ID> <DisplayName>owner</DisplayName> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> </ListBucketResult>
|
61
61
|
EOObjectsPrefix
|
62
|
-
|
62
|
+
|
63
63
|
|
64
64
|
@response_objects_list_prefix = Net::HTTPOK.new("1.1", "200", "OK")
|
65
65
|
@response_objects_list_prefix.stubs(:body).returns(@response_objects_list_body_prefix)
|
data/test/object_test.rb
CHANGED
@@ -108,13 +108,13 @@ class ObjectTest < Test::Unit::TestCase
|
|
108
108
|
end
|
109
109
|
|
110
110
|
test "save" do
|
111
|
-
@object_lena.expects(:object_request).with(:put, :body=>"test", :headers=>{ :x_amz_acl=>"
|
111
|
+
@object_lena.expects(:object_request).with(:put, :body=>"test", :headers=>{ :x_amz_acl=>"private", :x_amz_storage_class=>"STANDARD", :content_type=>"application/octet-stream" }).returns(@response_binary)
|
112
112
|
assert @object_lena.save
|
113
113
|
end
|
114
114
|
|
115
115
|
test "save with cache control headers" do
|
116
116
|
assert_equal "max-age=315360000", @object_mac.cache_control
|
117
|
-
@object_mac.expects(:object_request).with(:put, :body=>"test2", :headers=>{ :x_amz_acl=>"
|
117
|
+
@object_mac.expects(:object_request).with(:put, :body=>"test2", :headers=>{ :x_amz_acl=>"private", :x_amz_storage_class=>"STANDARD", :content_type=>"application/octet-stream", :cache_control=>"max-age=315360000" }).returns(@response_binary)
|
118
118
|
assert @object_mac.save
|
119
119
|
end
|
120
120
|
|
@@ -203,7 +203,7 @@ class ObjectTest < Test::Unit::TestCase
|
|
203
203
|
end
|
204
204
|
|
205
205
|
test "replace" do
|
206
|
-
@bucket_images.expects(:bucket_request).with(:put, :path => "Lena-copy.png", :headers => { :x_amz_acl => "
|
206
|
+
@bucket_images.expects(:bucket_request).with(:put, :path => "Lena-copy.png", :headers => { :x_amz_acl => "private", :content_type => "application/octet-stream", :x_amz_copy_source => "images/Lena.png", :x_amz_metadata_directive => "REPLACE" }).returns(@response_xml)
|
207
207
|
|
208
208
|
new_object = @object_lena.copy(:key => "Lena-copy.png")
|
209
209
|
|
@@ -212,7 +212,7 @@ class ObjectTest < Test::Unit::TestCase
|
|
212
212
|
end
|
213
213
|
|
214
214
|
test "copy" do
|
215
|
-
@bucket_images.expects(:bucket_request).with(:put, :path => "Lena-copy.png", :headers => { :x_amz_acl => "
|
215
|
+
@bucket_images.expects(:bucket_request).with(:put, :path => "Lena-copy.png", :headers => { :x_amz_acl => "private", :content_type => "application/octet-stream", :x_amz_copy_source => "images/Lena.png", :x_amz_metadata_directive => "COPY" }).returns(@response_xml)
|
216
216
|
|
217
217
|
new_object = @object_lena.copy(:key => "Lena-copy.png", :replace => false)
|
218
218
|
|
metadata
CHANGED
@@ -1,95 +1,95 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: s3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kuba Kuźma
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: proxies
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 0.2.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.2.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: test-unit
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: mocha
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
description:
|
84
|
-
|
83
|
+
description: 'S3 library provides access to Amazon''s Simple Storage Service. It supports
|
84
|
+
both: European and US buckets through REST API.'
|
85
85
|
email:
|
86
86
|
- kuba@jah.pl
|
87
87
|
executables: []
|
88
88
|
extensions: []
|
89
89
|
extra_rdoc_files: []
|
90
90
|
files:
|
91
|
-
- .gitignore
|
92
|
-
- .travis.yml
|
91
|
+
- ".gitignore"
|
92
|
+
- ".travis.yml"
|
93
93
|
- Gemfile
|
94
94
|
- Gemfile.lock
|
95
95
|
- LICENSE
|
@@ -124,17 +124,17 @@ require_paths:
|
|
124
124
|
- lib
|
125
125
|
required_ruby_version: !ruby/object:Gem::Requirement
|
126
126
|
requirements:
|
127
|
-
- -
|
127
|
+
- - ">="
|
128
128
|
- !ruby/object:Gem::Version
|
129
129
|
version: '0'
|
130
130
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
131
|
requirements:
|
132
|
-
- -
|
132
|
+
- - ">="
|
133
133
|
- !ruby/object:Gem::Version
|
134
134
|
version: 1.3.6
|
135
135
|
requirements: []
|
136
136
|
rubyforge_project: s3
|
137
|
-
rubygems_version: 2.4.
|
137
|
+
rubygems_version: 2.4.5
|
138
138
|
signing_key:
|
139
139
|
specification_version: 4
|
140
140
|
summary: Library for accessing S3 objects and buckets
|