aws-sdk 1.6.9 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +1 -1
- data/lib/aws.rb +8 -0
- data/lib/aws/api_config/CloudSearch-2011-02-01.yml +681 -0
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +4 -0
- data/lib/aws/api_config/EMR-2009-03-31.yml +18 -0
- data/lib/aws/api_config/ElastiCache-2012-03-09.yml +777 -0
- data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +823 -0
- data/lib/aws/api_config/RDS-2012-07-31.yml +1621 -0
- data/lib/aws/cloud_search.rb +31 -0
- data/lib/aws/cloud_search/client.rb +558 -0
- data/lib/aws/cloud_search/config.rb +18 -0
- data/lib/aws/cloud_search/errors.rb +22 -0
- data/lib/aws/cloud_search/request.rb +23 -0
- data/lib/aws/cloud_watch/alarm.rb +1 -1
- data/lib/aws/cloud_watch/metric.rb +3 -3
- data/lib/aws/core.rb +18 -3
- data/lib/aws/core/configuration.rb +11 -0
- data/lib/aws/core/inflection.rb +1 -0
- data/lib/aws/core/service_interface.rb +1 -1
- data/lib/aws/dynamo_db/batch_get.rb +19 -12
- data/lib/aws/dynamo_db/client.rb +27 -1
- data/lib/aws/dynamo_db/config.rb +2 -0
- data/lib/aws/dynamo_db/item_collection.rb +2 -2
- data/lib/aws/dynamo_db/table.rb +8 -2
- data/lib/aws/ec2/reserved_instances.rb +3 -0
- data/lib/aws/ec2/reserved_instances_offering.rb +3 -1
- data/lib/aws/elastic_beanstalk.rb +48 -0
- data/lib/aws/elastic_beanstalk/client.rb +867 -0
- data/lib/aws/elastic_beanstalk/config.rb +18 -0
- data/lib/aws/elastic_beanstalk/errors.rb +22 -0
- data/lib/aws/elastic_beanstalk/request.rb +23 -0
- data/lib/aws/elasticache.rb +48 -0
- data/lib/aws/elasticache/client.rb +758 -0
- data/lib/aws/elasticache/config.rb +18 -0
- data/lib/aws/elasticache/errors.rb +22 -0
- data/lib/aws/elasticache/request.rb +23 -0
- data/lib/aws/emr/client.rb +30 -6
- data/lib/aws/emr/job_flow.rb +10 -0
- data/lib/aws/rds.rb +69 -0
- data/lib/aws/rds/client.rb +1592 -0
- data/lib/aws/rds/config.rb +18 -0
- data/lib/aws/rds/db_instance.rb +201 -0
- data/lib/aws/rds/db_instance_collection.rb +75 -0
- data/lib/aws/rds/db_snapshot.rb +163 -0
- data/lib/aws/rds/db_snapshot_collection.rb +89 -0
- data/lib/aws/rds/errors.rb +22 -0
- data/lib/aws/rds/request.rb +23 -0
- data/lib/aws/s3/bucket_tag_collection.rb +1 -1
- data/lib/aws/s3/client.rb +4 -2
- data/lib/aws/s3/errors.rb +0 -1
- data/lib/aws/s3/object_collection.rb +40 -22
- data/lib/aws/s3/object_version.rb +7 -2
- data/lib/aws/s3/request.rb +1 -1
- data/lib/aws/s3/s3_object.rb +35 -11
- data/lib/aws/version.rb +1 -1
- metadata +33 -2
@@ -0,0 +1,89 @@
|
|
1
|
+
# Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
5
|
+
# the License is located at
|
6
|
+
#
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
8
|
+
#
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
12
|
+
# language governing permissions and limitations under the License.
|
13
|
+
|
14
|
+
module AWS
|
15
|
+
class RDS
|
16
|
+
class DBSnapshotCollection
|
17
|
+
|
18
|
+
include Core::Collection::WithLimitAndNextToken
|
19
|
+
|
20
|
+
# @private
|
21
|
+
def initialize options = {}
|
22
|
+
@filters = options[:filters] || {}
|
23
|
+
super
|
24
|
+
end
|
25
|
+
|
26
|
+
# @param [String] db_snapshot_id
|
27
|
+
# @return [DBSnapshot] Returns a {DBSnapshot} with the given ID.
|
28
|
+
def [] db_snapshot_id
|
29
|
+
DBSnapshot.new(db_snapshot_id, :config => config)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Filters the DB snapshots to those beloning to a single db instance.
|
33
|
+
# You may pass the ID of a db instance or a {DBInstance} object.
|
34
|
+
#
|
35
|
+
# @param [String,DBInstance] db_instance A db instance identifier
|
36
|
+
# string or a {DBInstance} object.
|
37
|
+
#
|
38
|
+
# @return [DBSnapshotCollection]
|
39
|
+
#
|
40
|
+
def db_instance db_instance
|
41
|
+
id = db_instance.is_a?(Core::Model) ? db_instance.id : db_instance
|
42
|
+
filter(:db_instance_identifier, id.to_s.downcase)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Filters the DB snapshots to those of a given snapshot type.
|
46
|
+
# @param [String] snapshot_type
|
47
|
+
# @return [DBSnapshotCollection]
|
48
|
+
def with_type snapshot_type
|
49
|
+
filter(:snapshot_type, snapshot_type)
|
50
|
+
end
|
51
|
+
alias_method :type, :with_type
|
52
|
+
|
53
|
+
# @param [String,Symbol] name
|
54
|
+
# @param [Mixed] value
|
55
|
+
# @return [DBSnapshotCollection]
|
56
|
+
def filter name, value
|
57
|
+
options = {}
|
58
|
+
options[:filters] = @filters.merge(name.to_s.to_sym => value)
|
59
|
+
options[:config] = config
|
60
|
+
DBSnapshotCollection.new(options)
|
61
|
+
end
|
62
|
+
|
63
|
+
protected
|
64
|
+
|
65
|
+
def _each_item marker, max_records, options = {}, &block
|
66
|
+
|
67
|
+
options = @filters.merge(options)
|
68
|
+
options[:marker] = marker if marker
|
69
|
+
options[:max_records] = [[20,max_records].max,100].min if max_records
|
70
|
+
|
71
|
+
response = client.describe_db_snapshots(options)
|
72
|
+
response.data[:db_snapshots].each do |details|
|
73
|
+
|
74
|
+
db_snapshot = DBSnapshot.new_from(
|
75
|
+
:describe_db_snapshots,
|
76
|
+
details,
|
77
|
+
details[:db_snapshot_identifier],
|
78
|
+
:config => config)
|
79
|
+
|
80
|
+
yield(db_snapshot)
|
81
|
+
|
82
|
+
end
|
83
|
+
|
84
|
+
response.data[:marker]
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
5
|
+
# the License is located at
|
6
|
+
#
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
8
|
+
#
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
12
|
+
# language governing permissions and limitations under the License.
|
13
|
+
|
14
|
+
module AWS
|
15
|
+
class RDS
|
16
|
+
module Errors
|
17
|
+
|
18
|
+
extend Core::LazyErrorClasses
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
5
|
+
# the License is located at
|
6
|
+
#
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
8
|
+
#
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
12
|
+
# language governing permissions and limitations under the License.
|
13
|
+
|
14
|
+
module AWS
|
15
|
+
class RDS
|
16
|
+
|
17
|
+
# @private
|
18
|
+
class Request < Core::Http::Request
|
19
|
+
include Core::Signature::Version2
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
data/lib/aws/s3/client.rb
CHANGED
@@ -953,8 +953,9 @@ module AWS
|
|
953
953
|
# @option options [required,String] :bucket_name
|
954
954
|
# @option options [required,String] :key
|
955
955
|
# @option options [String] :version_id
|
956
|
+
# @option options [String] :mfa
|
956
957
|
# @return [Core::Response]
|
957
|
-
object_method(:delete_object, :delete) do
|
958
|
+
object_method(:delete_object, :delete, :header_options => { :mfa => "x-amz-mfa" }) do
|
958
959
|
|
959
960
|
configure_request do |req, options|
|
960
961
|
super(req, options)
|
@@ -1077,8 +1078,9 @@ module AWS
|
|
1077
1078
|
# @option options [required,String] :bucket_name
|
1078
1079
|
# @option options [required,Array<String>] :keys
|
1079
1080
|
# @option options [Boolean] :quiet (true)
|
1081
|
+
# @option options [String] :mfa
|
1080
1082
|
# @return [Core::Response]
|
1081
|
-
bucket_method(:delete_objects, :post, 'delete', XML::DeleteObjects) do
|
1083
|
+
bucket_method(:delete_objects, :post, 'delete', XML::DeleteObjects, :header_options => { :mfa => "x-amz-mfa" }) do
|
1082
1084
|
configure_request do |req, options|
|
1083
1085
|
|
1084
1086
|
super(req, options)
|
data/lib/aws/s3/errors.rb
CHANGED
@@ -23,7 +23,7 @@ module AWS
|
|
23
23
|
# # this will not make any requests against S3
|
24
24
|
# object = bucket.objects['foo.jpg']
|
25
25
|
# object.key #=> 'foo.jpg'
|
26
|
-
#
|
26
|
+
#
|
27
27
|
# == Finding objects with a Prefix
|
28
28
|
#
|
29
29
|
# Given a bucket with the following keys:
|
@@ -38,7 +38,7 @@ module AWS
|
|
38
38
|
#
|
39
39
|
# bucket.objects.with_prefix('videos').collect(&:key)
|
40
40
|
# #=> ['videos/comedy.mpg', 'videos/dancing.mpg']
|
41
|
-
#
|
41
|
+
#
|
42
42
|
# == Exploring Objects with a Tree Interface
|
43
43
|
#
|
44
44
|
# Given a bucket with the following keys:
|
@@ -88,7 +88,7 @@ module AWS
|
|
88
88
|
# Returns an S3Object given its name. For example:
|
89
89
|
#
|
90
90
|
# @example
|
91
|
-
#
|
91
|
+
#
|
92
92
|
# object = bucket.objects['file.txt']
|
93
93
|
# object.class #=> S3Object
|
94
94
|
#
|
@@ -116,28 +116,47 @@ module AWS
|
|
116
116
|
#
|
117
117
|
# bucket.objects.delete(to_delete)
|
118
118
|
#
|
119
|
-
# @
|
120
|
-
#
|
119
|
+
# @overload delete(objects)
|
120
|
+
# @param [Mixed] objects One or more objects to delete. Each object
|
121
|
+
# can be one of the following:
|
121
122
|
#
|
122
|
-
#
|
123
|
-
#
|
124
|
-
#
|
125
|
-
#
|
123
|
+
# * An object key (string)
|
124
|
+
# * A hash with :key and :version_id (for versioned objects)
|
125
|
+
# * An {S3Object} instance
|
126
|
+
# * An {ObjectVersion} instance
|
126
127
|
#
|
127
|
-
# @
|
128
|
+
# @overload delete(objects, options)
|
129
|
+
# Deletes multiple objects, with additional options. The array can
|
130
|
+
# contain any of the types of objects the first method invocation style
|
131
|
+
# accepts.
|
132
|
+
# @param [Array] objects One or more objects to delete.
|
133
|
+
# @param [Hash] options Optional headers to pass on.
|
134
|
+
#
|
135
|
+
# @raise [BatchDeleteError] If any of the objects failed to delete,
|
128
136
|
# a BatchDeleteError will be raised with a summary of the errors.
|
129
137
|
#
|
130
138
|
# @return [nil]
|
131
139
|
#
|
132
140
|
def delete *objects
|
133
141
|
|
142
|
+
# Detect and retrieve options from the end of the splat.
|
143
|
+
if
|
144
|
+
objects.size == 2 and
|
145
|
+
objects[0].is_a?(Array) and
|
146
|
+
objects[1].is_a?(Hash)
|
147
|
+
then
|
148
|
+
client_opts = objects.pop
|
149
|
+
else
|
150
|
+
client_opts = {}
|
151
|
+
end
|
152
|
+
|
134
153
|
objects = objects.flatten.collect do |obj|
|
135
154
|
case obj
|
136
155
|
when String then { :key => obj }
|
137
156
|
when Hash then obj
|
138
157
|
when S3Object then { :key => obj.key }
|
139
158
|
when ObjectVersion then { :key => obj.key, :version_id => obj.version_id }
|
140
|
-
else
|
159
|
+
else
|
141
160
|
msg = "objects must be keys (strings or hashes with :key and " +
|
142
161
|
":version_id), S3Objects or ObjectVersions, got " +
|
143
162
|
object.class.name
|
@@ -146,7 +165,6 @@ module AWS
|
|
146
165
|
end
|
147
166
|
|
148
167
|
batch_helper = BatchHelper.new(1000) do |batch|
|
149
|
-
client_opts = {}
|
150
168
|
client_opts[:bucket_name] = bucket.name
|
151
169
|
client_opts[:quiet] = true
|
152
170
|
client_opts[:objects] = batch
|
@@ -167,14 +185,14 @@ module AWS
|
|
167
185
|
|
168
186
|
batch_helper.complete!
|
169
187
|
|
170
|
-
raise Errors::BatchDeleteError.new(error_counts) unless
|
188
|
+
raise Errors::BatchDeleteError.new(error_counts) unless
|
171
189
|
error_counts.empty?
|
172
190
|
|
173
191
|
nil
|
174
192
|
|
175
193
|
end
|
176
194
|
|
177
|
-
# Deletes each object in the collection that returns a true value
|
195
|
+
# Deletes each object in the collection that returns a true value
|
178
196
|
# from block passed to this method. Deletes are batched for efficiency.
|
179
197
|
#
|
180
198
|
# # delete text files in the 2009 "folder"
|
@@ -182,14 +200,14 @@ module AWS
|
|
182
200
|
#
|
183
201
|
# @yieldparam [S3Object] object
|
184
202
|
#
|
185
|
-
# @raise [BatchDeleteError] If any of the objects failed to delete,
|
203
|
+
# @raise [BatchDeleteError] If any of the objects failed to delete,
|
186
204
|
# a BatchDeleteError will be raised with a summary of the errors.
|
187
205
|
#
|
188
206
|
def delete_if &block
|
189
207
|
|
190
208
|
error_counts = {}
|
191
209
|
|
192
|
-
batch_helper = BatchHelper.new(1000) do |objects|
|
210
|
+
batch_helper = BatchHelper.new(1000) do |objects|
|
193
211
|
begin
|
194
212
|
delete(objects)
|
195
213
|
rescue Errors::BatchDeleteError => error
|
@@ -206,7 +224,7 @@ module AWS
|
|
206
224
|
|
207
225
|
batch_helper.complete!
|
208
226
|
|
209
|
-
raise Errors::BatchDeleteError.new(error_counts) unless
|
227
|
+
raise Errors::BatchDeleteError.new(error_counts) unless
|
210
228
|
error_counts.empty?
|
211
229
|
|
212
230
|
nil
|
@@ -223,7 +241,7 @@ module AWS
|
|
223
241
|
#
|
224
242
|
# bucket.objects.with_prefix('2009/').delete_all
|
225
243
|
#
|
226
|
-
# @raise [BatchDeleteError] If any of the objects failed to delete,
|
244
|
+
# @raise [BatchDeleteError] If any of the objects failed to delete,
|
227
245
|
# a BatchDeleteError will be raised with a summary of the errors.
|
228
246
|
#
|
229
247
|
# @return [Array] Returns an array of results
|
@@ -243,7 +261,7 @@ module AWS
|
|
243
261
|
end
|
244
262
|
end
|
245
263
|
|
246
|
-
raise Errors::BatchDeleteError.new(error_counts) unless
|
264
|
+
raise Errors::BatchDeleteError.new(error_counts) unless
|
247
265
|
error_counts.empty?
|
248
266
|
|
249
267
|
nil
|
@@ -255,10 +273,10 @@ module AWS
|
|
255
273
|
# Use break or raise an exception to terminate the enumeration.
|
256
274
|
#
|
257
275
|
# @param [Hash] options
|
258
|
-
# @option options [Integer] :limit (nil) The maximum number of
|
276
|
+
# @option options [Integer] :limit (nil) The maximum number of
|
259
277
|
# objects to yield.
|
260
278
|
# @option options [Integer] :batch_size (1000) The number of objects to
|
261
|
-
# fetch each request to S3. Maximum is 1000 keys at time.
|
279
|
+
# fetch each request to S3. Maximum is 1000 keys at time.
|
262
280
|
# @return [nil]
|
263
281
|
def each options = {}, &block
|
264
282
|
super
|
@@ -299,7 +317,7 @@ module AWS
|
|
299
317
|
# processes items in batches of 1k items
|
300
318
|
# @private
|
301
319
|
class BatchHelper
|
302
|
-
|
320
|
+
|
303
321
|
def initialize batch_size, &block
|
304
322
|
@batch_size = batch_size
|
305
323
|
@block = block
|
@@ -94,9 +94,14 @@ module AWS
|
|
94
94
|
end
|
95
95
|
|
96
96
|
# Deletes this object version from S3.
|
97
|
+
# @option options [String] :mfa The serial number and current token code of
|
98
|
+
# the Multi-Factor Authentication (MFA) device for the user. Format
|
99
|
+
# is "SERIAL TOKEN" - with a space between the serial and token.
|
97
100
|
# @return (see S3Object#delete)
|
98
|
-
def delete
|
99
|
-
object.delete(:version_id => @version_id
|
101
|
+
def delete(options = {})
|
102
|
+
object.delete(:version_id => @version_id,
|
103
|
+
:mfa => options[:mfa]
|
104
|
+
)
|
100
105
|
end
|
101
106
|
|
102
107
|
# @return [Boolean] Returns this if this is the latest version of
|
data/lib/aws/s3/request.rb
CHANGED
@@ -152,7 +152,7 @@ module AWS
|
|
152
152
|
x_amz = headers.select{|name, value| name.to_s =~ /^x-amz-/i }
|
153
153
|
x_amz = x_amz.collect{|name, value| [name.downcase, value] }
|
154
154
|
x_amz = x_amz.sort_by{|name, value| name }
|
155
|
-
x_amz = x_amz.collect{|name, value| "#{name}:#{value}" }.join("\n")
|
155
|
+
x_amz = x_amz.collect{|name, value| "#{name}:#{value.to_s.strip}" }.join("\n")
|
156
156
|
x_amz == '' ? nil : x_amz
|
157
157
|
end
|
158
158
|
|
data/lib/aws/s3/s3_object.rb
CHANGED
@@ -120,7 +120,7 @@ module AWS
|
|
120
120
|
# Amazon S3 provides server side encryption for an additional cost.
|
121
121
|
# You can specify to use server side encryption when writing an object.
|
122
122
|
#
|
123
|
-
# obj.write('data', :
|
123
|
+
# obj.write('data', :server_side_encryption => :aes256)
|
124
124
|
#
|
125
125
|
# You can also make this the default behavior.
|
126
126
|
#
|
@@ -361,9 +361,12 @@ module AWS
|
|
361
361
|
# if you use client-side encryption and the encryption materials
|
362
362
|
# were stored in a separate object in S3 (key.instruction).
|
363
363
|
#
|
364
|
+
# @option [String] :mfa The serial number and current token code of
|
365
|
+
# the Multi-Factor Authentication (MFA) device for the user. Format
|
366
|
+
# is "SERIAL TOKEN" - with a space between the serial and token.
|
367
|
+
#
|
364
368
|
# @return [nil]
|
365
369
|
def delete options = {}
|
366
|
-
|
367
370
|
client.delete_object(options.merge(
|
368
371
|
:bucket_name => bucket.name,
|
369
372
|
:key => key))
|
@@ -1114,6 +1117,16 @@ module AWS
|
|
1114
1117
|
# @option options [Boolean] :secure (true) Whether to generate a
|
1115
1118
|
# secure (HTTPS) URL or a plain HTTP url.
|
1116
1119
|
#
|
1120
|
+
# @option options [String] :endpoint Sets the hostname of the
|
1121
|
+
# endpoint (overrides config.s3_endpoint).
|
1122
|
+
#
|
1123
|
+
# @option options [Integer] :port Sets the port of the
|
1124
|
+
# endpoint (overrides config.s3_port).
|
1125
|
+
#
|
1126
|
+
# @option options [Boolean] :force_path_style (false) Indicates
|
1127
|
+
# whether the generated URL should place the bucket name in
|
1128
|
+
# the path (true) or as a subdomain (false).
|
1129
|
+
#
|
1117
1130
|
# @option options [String] :response_content_type Sets the
|
1118
1131
|
# Content-Type header of the response when performing an
|
1119
1132
|
# HTTP GET on the returned URL.
|
@@ -1139,6 +1152,9 @@ module AWS
|
|
1139
1152
|
# HTTP GET on the returned URL.
|
1140
1153
|
# @return [URI::HTTP, URI::HTTPS]
|
1141
1154
|
def url_for(method, options = {})
|
1155
|
+
|
1156
|
+
options[:secure] = config.use_ssl? unless options.key?(:secure)
|
1157
|
+
|
1142
1158
|
req = request_for_signing(options)
|
1143
1159
|
|
1144
1160
|
method = http_method(method)
|
@@ -1152,7 +1168,8 @@ module AWS
|
|
1152
1168
|
config.credential_provider.session_token) if
|
1153
1169
|
config.credential_provider.session_token
|
1154
1170
|
|
1155
|
-
|
1171
|
+
secure = options.fetch(:secure, config.use_ssl?)
|
1172
|
+
build_uri(req, options)
|
1156
1173
|
end
|
1157
1174
|
|
1158
1175
|
# Generates a public (not authenticated) URL for the object.
|
@@ -1165,8 +1182,8 @@ module AWS
|
|
1165
1182
|
# @return [URI::HTTP, URI::HTTPS]
|
1166
1183
|
#
|
1167
1184
|
def public_url(options = {})
|
1168
|
-
|
1169
|
-
build_uri(options
|
1185
|
+
options[:secure] = config.use_ssl? unless options.key?(:secure)
|
1186
|
+
build_uri(request_for_signing(options), options)
|
1170
1187
|
end
|
1171
1188
|
|
1172
1189
|
# Generates fields for a presigned POST to this object. This
|
@@ -1265,9 +1282,10 @@ module AWS
|
|
1265
1282
|
estimate
|
1266
1283
|
end
|
1267
1284
|
|
1268
|
-
def build_uri(
|
1269
|
-
uri_class = secure ? URI::HTTPS : URI::HTTP
|
1285
|
+
def build_uri(request, options)
|
1286
|
+
uri_class = options[:secure] ? URI::HTTPS : URI::HTTP
|
1270
1287
|
uri_class.build(:host => request.host,
|
1288
|
+
:port => request.port,
|
1271
1289
|
:path => request.path,
|
1272
1290
|
:query => request.querystring)
|
1273
1291
|
end
|
@@ -1279,9 +1297,8 @@ module AWS
|
|
1279
1297
|
parts << ""
|
1280
1298
|
parts << ""
|
1281
1299
|
parts << expires
|
1282
|
-
if config.credential_provider.session_token
|
1283
|
-
parts << "x-amz-security-token
|
1284
|
-
parts << "#{config.credential_provider.session_token}"
|
1300
|
+
if token = config.credential_provider.session_token
|
1301
|
+
parts << "x-amz-security-token:#{token}"
|
1285
1302
|
end
|
1286
1303
|
parts << request.canonicalized_resource
|
1287
1304
|
|
@@ -1318,11 +1335,18 @@ module AWS
|
|
1318
1335
|
end
|
1319
1336
|
|
1320
1337
|
def request_for_signing(options)
|
1338
|
+
|
1339
|
+
port = [443, 80].include?(config.s3_port) ?
|
1340
|
+
(options[:secure] ? 443 : 80) :
|
1341
|
+
config.s3_port
|
1342
|
+
|
1321
1343
|
req = Request.new
|
1322
1344
|
|
1323
1345
|
req.bucket = bucket.name
|
1324
1346
|
req.key = key
|
1325
|
-
req.host = config.s3_endpoint
|
1347
|
+
req.host = options.fetch(:endpoint, config.s3_endpoint)
|
1348
|
+
req.port = options.fetch(:port, port)
|
1349
|
+
req.force_path_style = options.fetch(:force_path_style, config.s3_force_path_style)
|
1326
1350
|
|
1327
1351
|
REQUEST_PARAMETERS.each do |param|
|
1328
1352
|
req.add_param(param.to_s.tr("_","-"),
|