aws-sdk-s3 1.96.2 → 1.117.2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +147 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-s3/bucket.rb +127 -30
- data/lib/aws-sdk-s3/bucket_acl.rb +21 -4
- data/lib/aws-sdk-s3/bucket_cors.rb +23 -6
- data/lib/aws-sdk-s3/bucket_lifecycle.rb +27 -8
- data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +28 -6
- data/lib/aws-sdk-s3/bucket_logging.rb +21 -4
- data/lib/aws-sdk-s3/bucket_notification.rb +19 -7
- data/lib/aws-sdk-s3/bucket_policy.rb +23 -6
- data/lib/aws-sdk-s3/bucket_request_payment.rb +21 -4
- data/lib/aws-sdk-s3/bucket_tagging.rb +23 -6
- data/lib/aws-sdk-s3/bucket_versioning.rb +63 -12
- data/lib/aws-sdk-s3/bucket_website.rb +23 -6
- data/lib/aws-sdk-s3/client.rb +2776 -1341
- data/lib/aws-sdk-s3/client_api.rb +577 -208
- data/lib/aws-sdk-s3/customizations/bucket.rb +20 -46
- data/lib/aws-sdk-s3/customizations/object.rb +78 -5
- data/lib/aws-sdk-s3/encryption/client.rb +1 -1
- data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +0 -4
- data/lib/aws-sdk-s3/encryptionV2/client.rb +1 -1
- data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +0 -4
- data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +0 -4
- data/lib/aws-sdk-s3/endpoint_parameters.rb +142 -0
- data/lib/aws-sdk-s3/endpoint_provider.rb +2020 -0
- data/lib/aws-sdk-s3/endpoints.rb +2149 -0
- data/lib/aws-sdk-s3/file_downloader.rb +1 -1
- data/lib/aws-sdk-s3/file_uploader.rb +6 -1
- data/lib/aws-sdk-s3/multipart_file_uploader.rb +26 -7
- data/lib/aws-sdk-s3/multipart_stream_uploader.rb +36 -10
- data/lib/aws-sdk-s3/multipart_upload.rb +126 -12
- data/lib/aws-sdk-s3/multipart_upload_part.rb +134 -14
- data/lib/aws-sdk-s3/object.rb +291 -115
- data/lib/aws-sdk-s3/object_acl.rb +23 -6
- data/lib/aws-sdk-s3/object_summary.rb +210 -81
- data/lib/aws-sdk-s3/object_version.rb +66 -39
- data/lib/aws-sdk-s3/plugins/accelerate.rb +3 -44
- data/lib/aws-sdk-s3/plugins/arn.rb +22 -180
- data/lib/aws-sdk-s3/plugins/bucket_dns.rb +3 -39
- data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -6
- data/lib/aws-sdk-s3/plugins/dualstack.rb +1 -55
- data/lib/aws-sdk-s3/plugins/endpoints.rb +262 -0
- data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +2 -1
- data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +6 -29
- data/lib/aws-sdk-s3/plugins/md5s.rb +5 -3
- data/lib/aws-sdk-s3/plugins/s3_signer.rb +33 -100
- data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +31 -0
- data/lib/aws-sdk-s3/plugins/streaming_retry.rb +23 -2
- data/lib/aws-sdk-s3/presigned_post.rb +47 -35
- data/lib/aws-sdk-s3/presigner.rb +20 -27
- data/lib/aws-sdk-s3/resource.rb +19 -1
- data/lib/aws-sdk-s3/types.rb +2759 -4389
- data/lib/aws-sdk-s3.rb +5 -1
- metadata +12 -11
- data/lib/aws-sdk-s3/arn/access_point_arn.rb +0 -69
- data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +0 -69
- data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +0 -73
- data/lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb +0 -25
|
@@ -5,22 +5,6 @@ require 'uri'
|
|
|
5
5
|
module Aws
|
|
6
6
|
module S3
|
|
7
7
|
class Bucket
|
|
8
|
-
# Save the old initialize method so that we can call 'super'.
|
|
9
|
-
old_initialize = instance_method(:initialize)
|
|
10
|
-
# Make the method redefinable
|
|
11
|
-
alias_method :initialize, :initialize
|
|
12
|
-
# Define a new initialize method that extracts out a bucket ARN.
|
|
13
|
-
define_method(:initialize) do |*args|
|
|
14
|
-
old_initialize.bind(self).call(*args)
|
|
15
|
-
resolved_region, arn = Plugins::ARN.resolve_arn!(
|
|
16
|
-
name,
|
|
17
|
-
client.config.region,
|
|
18
|
-
client.config.s3_use_arn_region
|
|
19
|
-
)
|
|
20
|
-
@resolved_region = resolved_region
|
|
21
|
-
@arn = arn
|
|
22
|
-
end
|
|
23
|
-
|
|
24
8
|
# Deletes all objects and versioned objects from this bucket
|
|
25
9
|
#
|
|
26
10
|
# @example
|
|
@@ -105,14 +89,27 @@ module Aws
|
|
|
105
89
|
if options[:virtual_host]
|
|
106
90
|
scheme = options.fetch(:secure, true) ? 'https' : 'http'
|
|
107
91
|
"#{scheme}://#{name}"
|
|
108
|
-
elsif @arn
|
|
109
|
-
Plugins::ARN.resolve_url!(
|
|
110
|
-
client.config.endpoint.dup,
|
|
111
|
-
@arn,
|
|
112
|
-
@resolved_region
|
|
113
|
-
).to_s
|
|
114
92
|
else
|
|
115
|
-
|
|
93
|
+
# Taken from Aws::S3::Endpoints module
|
|
94
|
+
unless client.config.regional_endpoint
|
|
95
|
+
endpoint = client.config.endpoint.to_s
|
|
96
|
+
end
|
|
97
|
+
params = Aws::S3::EndpointParameters.new(
|
|
98
|
+
bucket: name,
|
|
99
|
+
region: client.config.region,
|
|
100
|
+
use_fips: client.config.use_fips_endpoint,
|
|
101
|
+
use_dual_stack: client.config.use_dualstack_endpoint,
|
|
102
|
+
endpoint: endpoint,
|
|
103
|
+
force_path_style: client.config.force_path_style,
|
|
104
|
+
accelerate: client.config.use_accelerate_endpoint,
|
|
105
|
+
use_global_endpoint: client.config.s3_us_east_1_regional_endpoint == 'legacy',
|
|
106
|
+
use_object_lambda_endpoint: nil,
|
|
107
|
+
disable_access_points: nil,
|
|
108
|
+
disable_multi_region_access_points: client.config.s3_disable_multiregion_access_points,
|
|
109
|
+
use_arn_region: client.config.s3_use_arn_region,
|
|
110
|
+
)
|
|
111
|
+
endpoint = Aws::S3::EndpointProvider.new.resolve_endpoint(params)
|
|
112
|
+
endpoint.url
|
|
116
113
|
end
|
|
117
114
|
end
|
|
118
115
|
|
|
@@ -142,29 +139,6 @@ module Aws
|
|
|
142
139
|
|
|
143
140
|
self
|
|
144
141
|
end
|
|
145
|
-
|
|
146
|
-
private
|
|
147
|
-
|
|
148
|
-
def s3_bucket_url
|
|
149
|
-
url = client.config.endpoint.dup
|
|
150
|
-
if bucket_as_hostname?(url.scheme == 'https')
|
|
151
|
-
url.host = "#{name}.#{url.host}"
|
|
152
|
-
else
|
|
153
|
-
url.path += '/' unless url.path[-1] == '/'
|
|
154
|
-
url.path += Seahorse::Util.uri_escape(name)
|
|
155
|
-
end
|
|
156
|
-
if (client.config.region == 'us-east-1') &&
|
|
157
|
-
(client.config.s3_us_east_1_regional_endpoint == 'legacy')
|
|
158
|
-
url.host = Plugins::IADRegionalEndpoint.legacy_host(url.host)
|
|
159
|
-
end
|
|
160
|
-
url.to_s
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
def bucket_as_hostname?(https)
|
|
164
|
-
Plugins::BucketDns.dns_compatible?(name, https) &&
|
|
165
|
-
!client.config.force_path_style
|
|
166
|
-
end
|
|
167
|
-
|
|
168
142
|
end
|
|
169
143
|
end
|
|
170
144
|
end
|
|
@@ -161,7 +161,7 @@ module Aws
|
|
|
161
161
|
#
|
|
162
162
|
# @param [Symbol] method
|
|
163
163
|
# The S3 operation to generate a presigned URL for. Valid values
|
|
164
|
-
# are `:get`, `:put`, `:head`, `:delete`, `:create_multipart_upload`,
|
|
164
|
+
# are `:get`, `:put`, `:head`, `:delete`, `:create_multipart_upload`,
|
|
165
165
|
# `:list_multipart_uploads`, `:complete_multipart_upload`,
|
|
166
166
|
# `:abort_multipart_upload`, `:list_parts`, and `:upload_part`.
|
|
167
167
|
#
|
|
@@ -215,6 +215,79 @@ module Aws
|
|
|
215
215
|
)
|
|
216
216
|
end
|
|
217
217
|
|
|
218
|
+
# Allows you to create presigned URL requests for S3 operations. This
|
|
219
|
+
# method returns a tuple containing the URL and the signed X-amz-* headers
|
|
220
|
+
# to be used with the presigned url.
|
|
221
|
+
#
|
|
222
|
+
# @example Pre-signed GET URL, valid for one hour
|
|
223
|
+
#
|
|
224
|
+
# obj.presigned_request(:get, expires_in: 3600)
|
|
225
|
+
# #=> ["https://bucket-name.s3.amazonaws.com/object-key?...", {}]
|
|
226
|
+
#
|
|
227
|
+
# @example Pre-signed PUT with a canned ACL
|
|
228
|
+
#
|
|
229
|
+
# # the object uploaded using this URL will be publicly accessible
|
|
230
|
+
# obj.presigned_request(:put, acl: 'public-read')
|
|
231
|
+
# #=> ["https://bucket-name.s3.amazonaws.com/object-key?...",
|
|
232
|
+
# {"x-amz-acl"=>"public-read"}]
|
|
233
|
+
#
|
|
234
|
+
# @param [Symbol] method
|
|
235
|
+
# The S3 operation to generate a presigned request for. Valid values
|
|
236
|
+
# are `:get`, `:put`, `:head`, `:delete`, `:create_multipart_upload`,
|
|
237
|
+
# `:list_multipart_uploads`, `:complete_multipart_upload`,
|
|
238
|
+
# `:abort_multipart_upload`, `:list_parts`, and `:upload_part`.
|
|
239
|
+
#
|
|
240
|
+
# @param [Hash] params
|
|
241
|
+
# Additional request parameters to use when generating the pre-signed
|
|
242
|
+
# request. See the related documentation in {Client} for accepted
|
|
243
|
+
# params.
|
|
244
|
+
#
|
|
245
|
+
# | Method | Client Method |
|
|
246
|
+
# |------------------------------|------------------------------------|
|
|
247
|
+
# | `:get` | {Client#get_object} |
|
|
248
|
+
# | `:put` | {Client#put_object} |
|
|
249
|
+
# | `:head` | {Client#head_object} |
|
|
250
|
+
# | `:delete` | {Client#delete_object} |
|
|
251
|
+
# | `:create_multipart_upload` | {Client#create_multipart_upload} |
|
|
252
|
+
# | `:list_multipart_uploads` | {Client#list_multipart_uploads} |
|
|
253
|
+
# | `:complete_multipart_upload` | {Client#complete_multipart_upload} |
|
|
254
|
+
# | `:abort_multipart_upload` | {Client#abort_multipart_upload} |
|
|
255
|
+
# | `:list_parts` | {Client#list_parts} |
|
|
256
|
+
# | `:upload_part` | {Client#upload_part} |
|
|
257
|
+
#
|
|
258
|
+
# @option params [Boolean] :virtual_host (false) When `true` the
|
|
259
|
+
# presigned URL will use the bucket name as a virtual host.
|
|
260
|
+
#
|
|
261
|
+
# bucket = Aws::S3::Bucket.new('my.bucket.com')
|
|
262
|
+
# bucket.object('key').presigned_request(virtual_host: true)
|
|
263
|
+
# #=> ["http://my.bucket.com/key?...", {}]
|
|
264
|
+
#
|
|
265
|
+
# @option params [Integer] :expires_in (900) Number of seconds before
|
|
266
|
+
# the pre-signed URL expires. This may not exceed one week (604800
|
|
267
|
+
# seconds). Note that the pre-signed URL is also only valid as long as
|
|
268
|
+
# credentials used to sign it are. For example, when using IAM roles,
|
|
269
|
+
# temporary tokens generated for signing also have a default expiration
|
|
270
|
+
# which will affect the effective expiration of the pre-signed URL.
|
|
271
|
+
#
|
|
272
|
+
# @raise [ArgumentError] Raised if `:expires_in` exceeds one week
|
|
273
|
+
# (604800 seconds).
|
|
274
|
+
#
|
|
275
|
+
# @return [String, Hash] A tuple with a presigned URL and headers that
|
|
276
|
+
# should be included with the request.
|
|
277
|
+
#
|
|
278
|
+
def presigned_request(method, params = {})
|
|
279
|
+
presigner = Presigner.new(client: client)
|
|
280
|
+
|
|
281
|
+
if %w(delete head get put).include?(method.to_s)
|
|
282
|
+
method = "#{method}_object".to_sym
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
presigner.presigned_request(
|
|
286
|
+
method.downcase,
|
|
287
|
+
params.merge(bucket: bucket_name, key: key)
|
|
288
|
+
)
|
|
289
|
+
end
|
|
290
|
+
|
|
218
291
|
# Returns the public (un-signed) URL for this object.
|
|
219
292
|
#
|
|
220
293
|
# s3.bucket('bucket-name').object('obj-key').public_url
|
|
@@ -327,7 +400,7 @@ module Aws
|
|
|
327
400
|
# progress = Proc.new do |bytes, totals|
|
|
328
401
|
# puts bytes.map.with_index { |b, i| "Part #{i+1}: #{b} / #{totals[i]}"}.join(' ') + "Total: #{100.0 * bytes.sum / totals.sum }%" }
|
|
329
402
|
# end
|
|
330
|
-
# obj.upload_file('/path/to/file')
|
|
403
|
+
# obj.upload_file('/path/to/file', progress_callback: progress)
|
|
331
404
|
#
|
|
332
405
|
# @param [String, Pathname, File, Tempfile] source A file on the local
|
|
333
406
|
# file system that will be uploaded as this object. This can either be
|
|
@@ -337,10 +410,10 @@ module Aws
|
|
|
337
410
|
# using an open Tempfile, rewind it before uploading or else the object
|
|
338
411
|
# will be empty.
|
|
339
412
|
#
|
|
340
|
-
# @option options [Integer] :multipart_threshold (
|
|
413
|
+
# @option options [Integer] :multipart_threshold (104857600) Files larger
|
|
341
414
|
# than or equal to `:multipart_threshold` are uploaded using the S3
|
|
342
415
|
# multipart APIs.
|
|
343
|
-
# Default threshold is
|
|
416
|
+
# Default threshold is 100MB.
|
|
344
417
|
#
|
|
345
418
|
# @option options [Integer] :thread_count (10) The number of parallel
|
|
346
419
|
# multipart uploads. This option is not used if the file is smaller than
|
|
@@ -391,7 +464,7 @@ module Aws
|
|
|
391
464
|
# customizing each range size in multipart_download,
|
|
392
465
|
# By default, `auto` mode is enabled, which performs multipart_download
|
|
393
466
|
#
|
|
394
|
-
# @option options [
|
|
467
|
+
# @option options [Integer] chunk_size required in get_range mode.
|
|
395
468
|
#
|
|
396
469
|
# @option options [Integer] thread_count (10) Customize threads used in
|
|
397
470
|
# the multipart download.
|
|
@@ -165,10 +165,6 @@ module Aws
|
|
|
165
165
|
# to initialize the cipher, and the decrypter truncates the
|
|
166
166
|
# auth tag from the body when writing the final bytes.
|
|
167
167
|
def authenticated_decrypter(context, cipher, envelope)
|
|
168
|
-
if RUBY_VERSION.match(/1.9/)
|
|
169
|
-
raise "authenticated decryption not supported by OpenSSL in Ruby version ~> 1.9"
|
|
170
|
-
raise Aws::Errors::NonSupportedRubyVersionError, msg
|
|
171
|
-
end
|
|
172
168
|
http_resp = context.http_response
|
|
173
169
|
content_length = http_resp.headers['content-length'].to_i
|
|
174
170
|
auth_tag_length = auth_tag_length(envelope)
|
|
@@ -166,10 +166,6 @@ module Aws
|
|
|
166
166
|
# to initialize the cipher, and the decrypter truncates the
|
|
167
167
|
# auth tag from the body when writing the final bytes.
|
|
168
168
|
def authenticated_decrypter(context, cipher, envelope)
|
|
169
|
-
if RUBY_VERSION.match(/1.9/)
|
|
170
|
-
raise "authenticated decryption not supported by OpenSSL in Ruby version ~> 1.9"
|
|
171
|
-
raise Aws::Errors::NonSupportedRubyVersionError, msg
|
|
172
|
-
end
|
|
173
169
|
http_resp = context.http_response
|
|
174
170
|
content_length = http_resp.headers['content-length'].to_i
|
|
175
171
|
auth_tag_length = auth_tag_length(envelope)
|
|
@@ -9,10 +9,6 @@ module Aws
|
|
|
9
9
|
class EncryptHandler < Seahorse::Client::Handler
|
|
10
10
|
|
|
11
11
|
def call(context)
|
|
12
|
-
if RUBY_VERSION.match(/1.9/)
|
|
13
|
-
raise "authenticated encryption not supported by OpenSSL in Ruby version ~> 1.9"
|
|
14
|
-
raise Aws::Errors::NonSupportedRubyVersionError, msg
|
|
15
|
-
end
|
|
16
12
|
envelope, cipher = context[:encryption][:cipher_provider]
|
|
17
13
|
.encryption_cipher(
|
|
18
14
|
kms_encryption_context: context[:encryption][:kms_encryption_context]
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# WARNING ABOUT GENERATED CODE
|
|
4
|
+
#
|
|
5
|
+
# This file is generated. See the contributing guide for more information:
|
|
6
|
+
# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
|
|
7
|
+
#
|
|
8
|
+
# WARNING ABOUT GENERATED CODE
|
|
9
|
+
|
|
10
|
+
module Aws::S3
|
|
11
|
+
# Endpoint parameters used to influence endpoints per request.
|
|
12
|
+
#
|
|
13
|
+
# @!attribute bucket
|
|
14
|
+
# The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.
|
|
15
|
+
#
|
|
16
|
+
# @return [String]
|
|
17
|
+
#
|
|
18
|
+
# @!attribute region
|
|
19
|
+
# The AWS region used to dispatch the request.
|
|
20
|
+
#
|
|
21
|
+
# @return [String]
|
|
22
|
+
#
|
|
23
|
+
# @!attribute use_fips
|
|
24
|
+
# When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
|
|
25
|
+
#
|
|
26
|
+
# @return [Boolean]
|
|
27
|
+
#
|
|
28
|
+
# @!attribute use_dual_stack
|
|
29
|
+
# When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
|
|
30
|
+
#
|
|
31
|
+
# @return [Boolean]
|
|
32
|
+
#
|
|
33
|
+
# @!attribute endpoint
|
|
34
|
+
# Override the endpoint used to send this request
|
|
35
|
+
#
|
|
36
|
+
# @return [String]
|
|
37
|
+
#
|
|
38
|
+
# @!attribute force_path_style
|
|
39
|
+
# When true, force a path-style endpoint to be used where the bucket name is part of the path.
|
|
40
|
+
#
|
|
41
|
+
# @return [Boolean]
|
|
42
|
+
#
|
|
43
|
+
# @!attribute accelerate
|
|
44
|
+
# When true, use S3 Accelerate. NOTE: Not all regions support S3 accelerate.
|
|
45
|
+
#
|
|
46
|
+
# @return [Boolean]
|
|
47
|
+
#
|
|
48
|
+
# @!attribute use_global_endpoint
|
|
49
|
+
# Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.
|
|
50
|
+
#
|
|
51
|
+
# @return [Boolean]
|
|
52
|
+
#
|
|
53
|
+
# @!attribute use_object_lambda_endpoint
|
|
54
|
+
# Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse)
|
|
55
|
+
#
|
|
56
|
+
# @return [Boolean]
|
|
57
|
+
#
|
|
58
|
+
# @!attribute disable_access_points
|
|
59
|
+
# Internal parameter to disable Access Point Buckets
|
|
60
|
+
#
|
|
61
|
+
# @return [Boolean]
|
|
62
|
+
#
|
|
63
|
+
# @!attribute disable_multi_region_access_points
|
|
64
|
+
# Whether multi-region access points (MRAP) should be disabled.
|
|
65
|
+
#
|
|
66
|
+
# @return [Boolean]
|
|
67
|
+
#
|
|
68
|
+
# @!attribute use_arn_region
|
|
69
|
+
# When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.
|
|
70
|
+
#
|
|
71
|
+
# @return [Boolean]
|
|
72
|
+
#
|
|
73
|
+
EndpointParameters = Struct.new(
|
|
74
|
+
:bucket,
|
|
75
|
+
:region,
|
|
76
|
+
:use_fips,
|
|
77
|
+
:use_dual_stack,
|
|
78
|
+
:endpoint,
|
|
79
|
+
:force_path_style,
|
|
80
|
+
:accelerate,
|
|
81
|
+
:use_global_endpoint,
|
|
82
|
+
:use_object_lambda_endpoint,
|
|
83
|
+
:disable_access_points,
|
|
84
|
+
:disable_multi_region_access_points,
|
|
85
|
+
:use_arn_region,
|
|
86
|
+
) do
|
|
87
|
+
include Aws::Structure
|
|
88
|
+
|
|
89
|
+
# @api private
|
|
90
|
+
class << self
|
|
91
|
+
PARAM_MAP = {
|
|
92
|
+
'Bucket' => :bucket,
|
|
93
|
+
'Region' => :region,
|
|
94
|
+
'UseFIPS' => :use_fips,
|
|
95
|
+
'UseDualStack' => :use_dual_stack,
|
|
96
|
+
'Endpoint' => :endpoint,
|
|
97
|
+
'ForcePathStyle' => :force_path_style,
|
|
98
|
+
'Accelerate' => :accelerate,
|
|
99
|
+
'UseGlobalEndpoint' => :use_global_endpoint,
|
|
100
|
+
'UseObjectLambdaEndpoint' => :use_object_lambda_endpoint,
|
|
101
|
+
'DisableAccessPoints' => :disable_access_points,
|
|
102
|
+
'DisableMultiRegionAccessPoints' => :disable_multi_region_access_points,
|
|
103
|
+
'UseArnRegion' => :use_arn_region,
|
|
104
|
+
}.freeze
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def initialize(options = {})
|
|
108
|
+
self[:bucket] = options[:bucket]
|
|
109
|
+
self[:region] = options[:region]
|
|
110
|
+
self[:use_fips] = options[:use_fips]
|
|
111
|
+
self[:use_fips] = false if self[:use_fips].nil?
|
|
112
|
+
if self[:use_fips].nil?
|
|
113
|
+
raise ArgumentError, "Missing required EndpointParameter: :use_fips"
|
|
114
|
+
end
|
|
115
|
+
self[:use_dual_stack] = options[:use_dual_stack]
|
|
116
|
+
self[:use_dual_stack] = false if self[:use_dual_stack].nil?
|
|
117
|
+
if self[:use_dual_stack].nil?
|
|
118
|
+
raise ArgumentError, "Missing required EndpointParameter: :use_dual_stack"
|
|
119
|
+
end
|
|
120
|
+
self[:endpoint] = options[:endpoint]
|
|
121
|
+
self[:force_path_style] = options[:force_path_style]
|
|
122
|
+
self[:accelerate] = options[:accelerate]
|
|
123
|
+
self[:accelerate] = false if self[:accelerate].nil?
|
|
124
|
+
if self[:accelerate].nil?
|
|
125
|
+
raise ArgumentError, "Missing required EndpointParameter: :accelerate"
|
|
126
|
+
end
|
|
127
|
+
self[:use_global_endpoint] = options[:use_global_endpoint]
|
|
128
|
+
self[:use_global_endpoint] = false if self[:use_global_endpoint].nil?
|
|
129
|
+
if self[:use_global_endpoint].nil?
|
|
130
|
+
raise ArgumentError, "Missing required EndpointParameter: :use_global_endpoint"
|
|
131
|
+
end
|
|
132
|
+
self[:use_object_lambda_endpoint] = options[:use_object_lambda_endpoint]
|
|
133
|
+
self[:disable_access_points] = options[:disable_access_points]
|
|
134
|
+
self[:disable_multi_region_access_points] = options[:disable_multi_region_access_points]
|
|
135
|
+
self[:disable_multi_region_access_points] = false if self[:disable_multi_region_access_points].nil?
|
|
136
|
+
if self[:disable_multi_region_access_points].nil?
|
|
137
|
+
raise ArgumentError, "Missing required EndpointParameter: :disable_multi_region_access_points"
|
|
138
|
+
end
|
|
139
|
+
self[:use_arn_region] = options[:use_arn_region]
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
end
|