aws-sdk-s3 1.177.0 → 1.178.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +38 -24
  5. data/lib/aws-sdk-s3/bucket_acl.rb +5 -4
  6. data/lib/aws-sdk-s3/bucket_cors.rb +5 -4
  7. data/lib/aws-sdk-s3/bucket_lifecycle.rb +1 -1
  8. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +2 -2
  9. data/lib/aws-sdk-s3/bucket_logging.rb +1 -1
  10. data/lib/aws-sdk-s3/bucket_policy.rb +9 -8
  11. data/lib/aws-sdk-s3/bucket_request_payment.rb +2 -2
  12. data/lib/aws-sdk-s3/bucket_tagging.rb +2 -2
  13. data/lib/aws-sdk-s3/bucket_versioning.rb +6 -6
  14. data/lib/aws-sdk-s3/bucket_website.rb +2 -2
  15. data/lib/aws-sdk-s3/client.rb +379 -237
  16. data/lib/aws-sdk-s3/client_api.rb +34 -2
  17. data/lib/aws-sdk-s3/file_downloader.rb +4 -21
  18. data/lib/aws-sdk-s3/multipart_file_uploader.rb +31 -13
  19. data/lib/aws-sdk-s3/multipart_upload.rb +48 -6
  20. data/lib/aws-sdk-s3/multipart_upload_part.rb +52 -36
  21. data/lib/aws-sdk-s3/object.rb +108 -58
  22. data/lib/aws-sdk-s3/object_acl.rb +4 -4
  23. data/lib/aws-sdk-s3/object_summary.rb +63 -28
  24. data/lib/aws-sdk-s3/object_version.rb +21 -8
  25. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
  26. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +11 -20
  27. data/lib/aws-sdk-s3/plugins/md5s.rb +10 -71
  28. data/lib/aws-sdk-s3/presigner.rb +4 -5
  29. data/lib/aws-sdk-s3/types.rb +734 -416
  30. data/lib/aws-sdk-s3.rb +1 -1
  31. data/sig/bucket.rbs +3 -2
  32. data/sig/bucket_acl.rbs +1 -1
  33. data/sig/bucket_cors.rbs +1 -1
  34. data/sig/bucket_lifecycle.rbs +1 -1
  35. data/sig/bucket_lifecycle_configuration.rbs +1 -1
  36. data/sig/bucket_logging.rbs +1 -1
  37. data/sig/bucket_policy.rbs +1 -1
  38. data/sig/bucket_request_payment.rbs +1 -1
  39. data/sig/bucket_tagging.rbs +1 -1
  40. data/sig/bucket_versioning.rbs +3 -3
  41. data/sig/bucket_website.rbs +1 -1
  42. data/sig/client.rbs +50 -29
  43. data/sig/multipart_upload.rbs +8 -1
  44. data/sig/multipart_upload_part.rbs +5 -1
  45. data/sig/object.rbs +13 -5
  46. data/sig/object_acl.rbs +1 -1
  47. data/sig/object_summary.rbs +11 -6
  48. data/sig/object_version.rbs +5 -2
  49. data/sig/resource.rbs +2 -0
  50. data/sig/types.rbs +61 -32
  51. metadata +5 -5
  52. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +0 -31
@@ -84,6 +84,18 @@ module Aws::S3
84
84
  data[:checksum_algorithm]
85
85
  end
86
86
 
87
+ # The checksum type that is used to calculate the object’s checksum
88
+ # value. For more information, see [Checking object integrity][1] in the
89
+ # *Amazon S3 User Guide*.
90
+ #
91
+ #
92
+ #
93
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
94
+ # @return [String]
95
+ def checksum_type
96
+ data[:checksum_type]
97
+ end
98
+
87
99
  # Size in bytes of the object
88
100
  # @return [Integer]
89
101
  def size
@@ -324,7 +336,7 @@ module Aws::S3
324
336
  # object_summary.copy_from({
325
337
  # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
326
338
  # cache_control: "CacheControl",
327
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
339
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
328
340
  # content_disposition: "ContentDisposition",
329
341
  # content_encoding: "ContentEncoding",
330
342
  # content_language: "ContentLanguage",
@@ -1458,7 +1470,8 @@ module Aws::S3
1458
1470
  # object_lock_retain_until_date: Time.now,
1459
1471
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
1460
1472
  # expected_bucket_owner: "AccountId",
1461
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1473
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
1474
+ # checksum_type: "COMPOSITE", # accepts COMPOSITE, FULL_OBJECT
1462
1475
  # })
1463
1476
  # @param [Hash] options ({})
1464
1477
  # @option options [String] :acl
@@ -1894,7 +1907,7 @@ module Aws::S3
1894
1907
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
1895
1908
  # @option options [String] :ssekms_encryption_context
1896
1909
  # Specifies the Amazon Web Services KMS Encryption Context to use for
1897
- # object encryption. The value of this header is a Base64-encoded string
1910
+ # object encryption. The value of this header is a Base64 encoded string
1898
1911
  # of a UTF-8 encoded JSON, which contains the encryption context as
1899
1912
  # key-value pairs.
1900
1913
  #
@@ -1983,6 +1996,14 @@ module Aws::S3
1983
1996
  #
1984
1997
  #
1985
1998
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1999
+ # @option options [String] :checksum_type
2000
+ # Indicates the checksum type that you want Amazon S3 to use to
2001
+ # calculate the object’s checksum value. For more information, see
2002
+ # [Checking object integrity in the Amazon S3 User Guide][1].
2003
+ #
2004
+ #
2005
+ #
2006
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1986
2007
  # @return [MultipartUpload]
1987
2008
  def initiate_multipart_upload(options = {})
1988
2009
  options = options.merge(
@@ -2012,9 +2033,10 @@ module Aws::S3
2012
2033
  # content_length: 1,
2013
2034
  # content_md5: "ContentMD5",
2014
2035
  # content_type: "ContentType",
2015
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
2036
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
2016
2037
  # checksum_crc32: "ChecksumCRC32",
2017
2038
  # checksum_crc32c: "ChecksumCRC32C",
2039
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
2018
2040
  # checksum_sha1: "ChecksumSHA1",
2019
2041
  # checksum_sha256: "ChecksumSHA256",
2020
2042
  # expires: Time.now,
@@ -2120,7 +2142,7 @@ module Aws::S3
2120
2142
  #
2121
2143
  # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length
2122
2144
  # @option options [String] :content_md5
2123
- # The base64-encoded 128-bit MD5 digest of the message (without the
2145
+ # The Base64 encoded 128-bit `MD5` digest of the message (without the
2124
2146
  # headers) according to RFC 1864. This header can be used as a message
2125
2147
  # integrity check to verify that the data is the same data that was
2126
2148
  # originally sent. Although it is optional, we recommend using the
@@ -2163,22 +2185,23 @@ module Aws::S3
2163
2185
  # For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
2164
2186
  # the supported algorithm from the following list:
2165
2187
  #
2166
- # * `CRC32`
2188
+ # * `CRC-32`
2167
2189
  #
2168
- # * `CRC32C`
2190
+ # * `CRC-32C`
2169
2191
  #
2170
- # * `SHA1`
2192
+ # * `CRC-64NVME`
2171
2193
  #
2172
- # * `SHA256`
2194
+ # * `SHA-1`
2195
+ #
2196
+ # * `SHA-256`
2173
2197
  #
2174
2198
  # For more information, see [Checking object integrity][1] in the
2175
2199
  # *Amazon S3 User Guide*.
2176
2200
  #
2177
2201
  # If the individual checksum value you provide through
2178
2202
  # `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
2179
- # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 ignores any
2180
- # provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
2181
- # that matches the provided value in `x-amz-checksum-algorithm `.
2203
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
2204
+ # request with a `BadDigest` error.
2182
2205
  #
2183
2206
  # <note markdown="1"> The `Content-MD5` or `x-amz-sdk-checksum-algorithm` header is required
2184
2207
  # for any request to upload an object with a retention period configured
@@ -2198,7 +2221,7 @@ module Aws::S3
2198
2221
  # @option options [String] :checksum_crc32
2199
2222
  # This header can be used as a data integrity check to verify that the
2200
2223
  # data received is the same data that was originally sent. This header
2201
- # specifies the base64-encoded, 32-bit CRC-32 checksum of the object.
2224
+ # specifies the Base64 encoded, 32-bit `CRC-32` checksum of the object.
2202
2225
  # For more information, see [Checking object integrity][1] in the
2203
2226
  # *Amazon S3 User Guide*.
2204
2227
  #
@@ -2208,19 +2231,30 @@ module Aws::S3
2208
2231
  # @option options [String] :checksum_crc32c
2209
2232
  # This header can be used as a data integrity check to verify that the
2210
2233
  # data received is the same data that was originally sent. This header
2211
- # specifies the base64-encoded, 32-bit CRC-32C checksum of the object.
2234
+ # specifies the Base64 encoded, 32-bit `CRC-32C` checksum of the object.
2212
2235
  # For more information, see [Checking object integrity][1] in the
2213
2236
  # *Amazon S3 User Guide*.
2214
2237
  #
2215
2238
  #
2216
2239
  #
2217
2240
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2241
+ # @option options [String] :checksum_crc64nvme
2242
+ # This header can be used as a data integrity check to verify that the
2243
+ # data received is the same data that was originally sent. This header
2244
+ # specifies the Base64 encoded, 64-bit `CRC-64NVME` checksum of the
2245
+ # object. The `CRC-64NVME` checksum is always a full object checksum.
2246
+ # For more information, see [Checking object integrity in the Amazon S3
2247
+ # User Guide][1].
2248
+ #
2249
+ #
2250
+ #
2251
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2218
2252
  # @option options [String] :checksum_sha1
2219
2253
  # This header can be used as a data integrity check to verify that the
2220
2254
  # data received is the same data that was originally sent. This header
2221
- # specifies the base64-encoded, 160-bit SHA-1 digest of the object. For
2222
- # more information, see [Checking object integrity][1] in the *Amazon S3
2223
- # User Guide*.
2255
+ # specifies the Base64 encoded, 160-bit `SHA-1` digest of the object.
2256
+ # For more information, see [Checking object integrity][1] in the
2257
+ # *Amazon S3 User Guide*.
2224
2258
  #
2225
2259
  #
2226
2260
  #
@@ -2228,7 +2262,7 @@ module Aws::S3
2228
2262
  # @option options [String] :checksum_sha256
2229
2263
  # This header can be used as a data integrity check to verify that the
2230
2264
  # data received is the same data that was originally sent. This header
2231
- # specifies the base64-encoded, 256-bit SHA-256 digest of the object.
2265
+ # specifies the Base64 encoded, 256-bit `SHA-256` digest of the object.
2232
2266
  # For more information, see [Checking object integrity][1] in the
2233
2267
  # *Amazon S3 User Guide*.
2234
2268
  #
@@ -2497,7 +2531,7 @@ module Aws::S3
2497
2531
  # @option options [String] :ssekms_encryption_context
2498
2532
  # Specifies the Amazon Web Services KMS Encryption Context as an
2499
2533
  # additional encryption context to use for object encryption. The value
2500
- # of this header is a Base64-encoded string of a UTF-8 encoded JSON,
2534
+ # of this header is a Base64 encoded string of a UTF-8 encoded JSON,
2501
2535
  # which contains the encryption context as key-value pairs. This value
2502
2536
  # is stored as object metadata and automatically gets passed on to
2503
2537
  # Amazon Web Services KMS for future `GetObject` operations on this
@@ -2692,7 +2726,7 @@ module Aws::S3
2692
2726
  # },
2693
2727
  # },
2694
2728
  # request_payer: "requester", # accepts requester
2695
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
2729
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
2696
2730
  # expected_bucket_owner: "AccountId",
2697
2731
  # })
2698
2732
  # @param [Hash] options ({})
@@ -2869,7 +2903,7 @@ module Aws::S3
2869
2903
  # request_payer: "requester", # accepts requester
2870
2904
  # bypass_governance_retention: false,
2871
2905
  # expected_bucket_owner: "AccountId",
2872
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
2906
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
2873
2907
  # })
2874
2908
  # @param options ({})
2875
2909
  # @option options [String] :mfa
@@ -2933,22 +2967,23 @@ module Aws::S3
2933
2967
  # For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
2934
2968
  # the supported algorithm from the following list:
2935
2969
  #
2936
- # * `CRC32`
2970
+ # * `CRC-32`
2971
+ #
2972
+ # * `CRC-32C`
2937
2973
  #
2938
- # * `CRC32C`
2974
+ # * `CRC-64NVME`
2939
2975
  #
2940
- # * `SHA1`
2976
+ # * `SHA-1`
2941
2977
  #
2942
- # * `SHA256`
2978
+ # * `SHA-256`
2943
2979
  #
2944
2980
  # For more information, see [Checking object integrity][1] in the
2945
2981
  # *Amazon S3 User Guide*.
2946
2982
  #
2947
2983
  # If the individual checksum value you provide through
2948
2984
  # `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
2949
- # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 ignores any
2950
- # provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
2951
- # that matches the provided value in `x-amz-checksum-algorithm `.
2985
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
2986
+ # request with a `BadDigest` error.
2952
2987
  #
2953
2988
  # If you provide an individual checksum, Amazon S3 ignores any provided
2954
2989
  # `ChecksumAlgorithm` parameter.
@@ -62,6 +62,18 @@ module Aws::S3
62
62
  data[:checksum_algorithm]
63
63
  end
64
64
 
65
+ # The checksum type that is used to calculate the object’s checksum
66
+ # value. For more information, see [Checking object integrity][1] in the
67
+ # *Amazon S3 User Guide*.
68
+ #
69
+ #
70
+ #
71
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
72
+ # @return [String]
73
+ def checksum_type
74
+ data[:checksum_type]
75
+ end
76
+
65
77
  # Size in bytes of the object.
66
78
  # @return [Integer]
67
79
  def size
@@ -848,7 +860,7 @@ module Aws::S3
848
860
  # request_payer: "requester", # accepts requester
849
861
  # bypass_governance_retention: false,
850
862
  # expected_bucket_owner: "AccountId",
851
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
863
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
852
864
  # })
853
865
  # @param options ({})
854
866
  # @option options [String] :mfa
@@ -912,22 +924,23 @@ module Aws::S3
912
924
  # For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
913
925
  # the supported algorithm from the following list:
914
926
  #
915
- # * `CRC32`
927
+ # * `CRC-32`
928
+ #
929
+ # * `CRC-32C`
916
930
  #
917
- # * `CRC32C`
931
+ # * `CRC-64NVME`
918
932
  #
919
- # * `SHA1`
933
+ # * `SHA-1`
920
934
  #
921
- # * `SHA256`
935
+ # * `SHA-256`
922
936
  #
923
937
  # For more information, see [Checking object integrity][1] in the
924
938
  # *Amazon S3 User Guide*.
925
939
  #
926
940
  # If the individual checksum value you provide through
927
941
  # `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
928
- # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 ignores any
929
- # provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
930
- # that matches the provided value in `x-amz-checksum-algorithm `.
942
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
943
+ # request with a `BadDigest` error.
931
944
  #
932
945
  # If you provide an individual checksum, Amazon S3 ignores any provided
933
946
  # `ChecksumAlgorithm` parameter.
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Aws
4
+ module S3
5
+ module Plugins
6
+ # @api private
7
+ class ChecksumAlgorithm < Seahorse::Client::Plugin
8
+
9
+ # S3 GetObject results for whole Multipart Objects contain a checksum
10
+ # that cannot be validated. These should be skipped by the
11
+ # ChecksumAlgorithm plugin.
12
+ class SkipWholeMultipartGetChecksumsHandler < Seahorse::Client::Handler
13
+ def call(context)
14
+ context[:http_checksum] ||= {}
15
+ context[:http_checksum][:skip_on_suffix] = true
16
+
17
+ @handler.call(context)
18
+ end
19
+ end
20
+
21
+ def add_handlers(handlers, _config)
22
+ handlers.add(
23
+ SkipWholeMultipartGetChecksumsHandler,
24
+ step: :initialize,
25
+ operations: [:get_object]
26
+ )
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -29,24 +29,17 @@ for different buckets.
29
29
  # @api private
30
30
  class Handler < Seahorse::Client::Handler
31
31
  def call(context)
32
- if (props = context[:endpoint_properties])
33
- # S3 Express endpoint - turn off md5 and enable crc32 default
34
- if props['backend'] == 'S3Express'
35
- if context.operation_name == :put_object || checksum_required?(context)
36
- context[:default_request_checksum_algorithm] = 'CRC32'
37
- end
38
- context[:s3_express_endpoint] = true
39
- end
32
+ context[:s3_express_endpoint] = true if s3_express_endpoint?(context)
40
33
 
41
- # if s3 express auth, use new credentials and sign additional header
42
- if context[:auth_scheme]['name'] == 'sigv4-s3express' &&
43
- !context.config.disable_s3_express_session_auth
44
- bucket = context.params[:bucket]
45
- credentials_provider = context.config.express_credentials_provider
46
- credentials = credentials_provider.express_credentials_for(bucket)
47
- context[:sigv4_credentials] = credentials # Sign will use this
48
- end
34
+ # if s3 express auth, use new credentials and sign additional header
35
+ if context[:auth_scheme]['name'] == 'sigv4-s3express' &&
36
+ !context.config.disable_s3_express_session_auth
37
+ bucket = context.params[:bucket]
38
+ credentials_provider = context.config.express_credentials_provider
39
+ credentials = credentials_provider.express_credentials_for(bucket)
40
+ context[:sigv4_credentials] = credentials # Sign will use this
49
41
  end
42
+
50
43
  with_metric(credentials) { @handler.call(context) }
51
44
  end
52
45
 
@@ -58,10 +51,8 @@ for different buckets.
58
51
  Aws::Plugins::UserAgent.metric('S3_EXPRESS_BUCKET', &block)
59
52
  end
60
53
 
61
- def checksum_required?(context)
62
- context.operation.http_checksum_required ||
63
- (context.operation.http_checksum &&
64
- context.operation.http_checksum['requestChecksumRequired'])
54
+ def s3_express_endpoint?(context)
55
+ context[:endpoint_properties]['backend'] == 'S3Express'
65
56
  end
66
57
  end
67
58
 
@@ -6,81 +6,20 @@ module Aws
6
6
  module S3
7
7
  module Plugins
8
8
  # @api private
9
- # This plugin is effectively deprecated in favor of modeled
9
+ # This plugin is deprecated in favor of modeled
10
10
  # httpChecksumRequired traits.
11
11
  class Md5s < Seahorse::Client::Plugin
12
- # These operations allow Content MD5 but are not required by
13
- # httpChecksumRequired. This list should not grow.
14
- OPTIONAL_OPERATIONS = [
15
- :put_object,
16
- :upload_part
17
- ]
18
-
19
- # @api private
20
- class Handler < Seahorse::Client::Handler
21
-
22
- CHUNK_SIZE = 1 * 1024 * 1024 # one MB
23
-
24
- def call(context)
25
- if !context[:checksum_algorithms] && # skip in favor of flexible checksum
26
- !context[:s3_express_endpoint] # s3 express endpoints do not support md5
27
- body = context.http_request.body
28
- if body.respond_to?(:size) && body.size > 0
29
- context.http_request.headers['Content-Md5'] ||= md5(body)
30
- end
31
- end
32
- @handler.call(context)
33
- end
34
-
35
- private
36
-
37
- # @param [File, Tempfile, IO#read, String] value
38
- # @return [String<MD5>]
39
- def md5(value)
40
- if (File === value || Tempfile === value) && !value.path.nil? && File.exist?(value.path)
41
- OpenSSL::Digest::MD5.file(value).base64digest
42
- elsif value.respond_to?(:read)
43
- md5 = OpenSSL::Digest::MD5.new
44
- update_in_chunks(md5, value)
45
- md5.base64digest
46
- else
47
- OpenSSL::Digest::MD5.digest(value).base64digest
48
- end
49
- end
50
-
51
- def update_in_chunks(digest, io)
52
- loop do
53
- chunk = io.read(CHUNK_SIZE)
54
- break unless chunk
55
- digest.update(chunk)
56
- end
57
- io.rewind
58
- end
59
-
60
- end
61
-
62
12
  option(:compute_checksums,
63
- default: true,
64
- doc_type: 'Boolean',
65
- docstring: <<-DOCS)
66
- When `true` a MD5 checksum will be computed and sent in the Content Md5
67
- header for :put_object and :upload_part. When `false`, MD5 checksums
68
- will not be computed for these operations. Checksums are still computed
69
- for operations requiring them. Checksum errors returned by Amazon S3 are
70
- automatically retried up to `:retry_limit` times.
71
- DOCS
72
-
73
- def add_handlers(handlers, config)
74
- if config.compute_checksums
75
- # priority set low to ensure md5 is computed AFTER the request is
76
- # built but before it is signed
77
- handlers.add(
78
- Handler,
79
- priority: 10, step: :build, operations: OPTIONAL_OPERATIONS
80
- )
81
- end
13
+ default: true,
14
+ doc_type: 'Boolean',
15
+ docstring: <<~DOCS)
16
+ This option is deprecated. Please use `:request_checksum_calculation` instead.
17
+ When `false`, `request_checksum_calculation` is overridden to `when_required`.
18
+ DOCS
19
+
20
+ def after_initialize(client)
21
+ client.config.request_checksum_calculation = 'when_required' unless client.config.compute_checksums
82
22
  end
83
-
84
23
  end
85
24
  end
86
25
  end
@@ -193,15 +193,14 @@ module Aws
193
193
  req, expires_in, secure, time, unsigned_headers, hoist = true
194
194
  )
195
195
  x_amz_headers = {}
196
-
197
196
  http_req = req.context.http_request
198
-
199
- req.handlers.remove(Aws::S3::Plugins::S3Signer::LegacyHandler)
200
- req.handlers.remove(Aws::Plugins::Sign::Handler)
201
197
  req.handlers.remove(Seahorse::Client::Plugins::ContentLength::Handler)
202
198
  req.handlers.remove(Aws::Rest::ContentTypeHandler)
199
+ req.handlers.remove(Aws::Plugins::ChecksumAlgorithm::OptionHandler)
200
+ req.handlers.remove(Aws::Plugins::ChecksumAlgorithm::ChecksumHandler)
203
201
  req.handlers.remove(Aws::Plugins::InvocationId::Handler)
204
-
202
+ req.handlers.remove(Aws::Plugins::Sign::Handler)
203
+ req.handlers.remove(Aws::S3::Plugins::S3Signer::LegacyHandler)
205
204
  req.handle(step: :send) do |context|
206
205
  # if an endpoint was not provided, force secure or insecure
207
206
  if context.config.regional_endpoint