aws-sdk-s3 1.164.0 → 1.182.0

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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +102 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +112 -43
  5. data/lib/aws-sdk-s3/bucket_acl.rb +6 -5
  6. data/lib/aws-sdk-s3/bucket_cors.rb +6 -5
  7. data/lib/aws-sdk-s3/bucket_lifecycle.rb +7 -2
  8. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +60 -3
  9. data/lib/aws-sdk-s3/bucket_logging.rb +2 -2
  10. data/lib/aws-sdk-s3/bucket_policy.rb +10 -9
  11. data/lib/aws-sdk-s3/bucket_request_payment.rb +3 -3
  12. data/lib/aws-sdk-s3/bucket_tagging.rb +3 -3
  13. data/lib/aws-sdk-s3/bucket_versioning.rb +9 -9
  14. data/lib/aws-sdk-s3/bucket_website.rb +3 -3
  15. data/lib/aws-sdk-s3/client.rb +2144 -1325
  16. data/lib/aws-sdk-s3/client_api.rb +175 -3
  17. data/lib/aws-sdk-s3/customizations/object.rb +6 -0
  18. data/lib/aws-sdk-s3/customizations/object_summary.rb +5 -0
  19. data/lib/aws-sdk-s3/customizations/object_version.rb +13 -0
  20. data/lib/aws-sdk-s3/customizations.rb +24 -38
  21. data/lib/aws-sdk-s3/endpoint_parameters.rb +13 -18
  22. data/lib/aws-sdk-s3/endpoint_provider.rb +272 -253
  23. data/lib/aws-sdk-s3/endpoints.rb +445 -1403
  24. data/lib/aws-sdk-s3/errors.rb +47 -0
  25. data/lib/aws-sdk-s3/file_downloader.rb +4 -21
  26. data/lib/aws-sdk-s3/multipart_file_uploader.rb +31 -13
  27. data/lib/aws-sdk-s3/multipart_upload.rb +84 -6
  28. data/lib/aws-sdk-s3/multipart_upload_part.rb +52 -36
  29. data/lib/aws-sdk-s3/object.rb +254 -113
  30. data/lib/aws-sdk-s3/object_acl.rb +4 -4
  31. data/lib/aws-sdk-s3/object_summary.rb +199 -82
  32. data/lib/aws-sdk-s3/object_version.rb +67 -17
  33. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
  34. data/lib/aws-sdk-s3/plugins/endpoints.rb +1 -204
  35. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +11 -20
  36. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +3 -3
  37. data/lib/aws-sdk-s3/plugins/md5s.rb +10 -71
  38. data/lib/aws-sdk-s3/presigner.rb +5 -5
  39. data/lib/aws-sdk-s3/resource.rb +35 -10
  40. data/lib/aws-sdk-s3/types.rb +1921 -856
  41. data/lib/aws-sdk-s3.rb +35 -31
  42. data/sig/bucket.rbs +15 -6
  43. data/sig/bucket_acl.rbs +1 -1
  44. data/sig/bucket_cors.rbs +1 -1
  45. data/sig/bucket_lifecycle.rbs +1 -1
  46. data/sig/bucket_lifecycle_configuration.rbs +8 -4
  47. data/sig/bucket_logging.rbs +1 -1
  48. data/sig/bucket_policy.rbs +1 -1
  49. data/sig/bucket_request_payment.rbs +1 -1
  50. data/sig/bucket_tagging.rbs +1 -1
  51. data/sig/bucket_versioning.rbs +3 -3
  52. data/sig/bucket_website.rbs +1 -1
  53. data/sig/client.rbs +115 -40
  54. data/sig/errors.rbs +8 -0
  55. data/sig/multipart_upload.rbs +11 -2
  56. data/sig/multipart_upload_part.rbs +5 -1
  57. data/sig/object.rbs +22 -6
  58. data/sig/object_acl.rbs +1 -1
  59. data/sig/object_summary.rbs +17 -7
  60. data/sig/object_version.rbs +9 -3
  61. data/sig/resource.rbs +7 -3
  62. data/sig/types.rbs +163 -36
  63. metadata +6 -5
  64. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +0 -31
@@ -29,12 +29,16 @@ module Aws::S3
29
29
  # ## Error Classes
30
30
  # * {BucketAlreadyExists}
31
31
  # * {BucketAlreadyOwnedByYou}
32
+ # * {EncryptionTypeMismatch}
32
33
  # * {InvalidObjectState}
34
+ # * {InvalidRequest}
35
+ # * {InvalidWriteOffset}
33
36
  # * {NoSuchBucket}
34
37
  # * {NoSuchKey}
35
38
  # * {NoSuchUpload}
36
39
  # * {ObjectAlreadyInActiveTierError}
37
40
  # * {ObjectNotInActiveTierError}
41
+ # * {TooManyParts}
38
42
  #
39
43
  # Additionally, error classes are dynamically generated for service errors based on the error code
40
44
  # if they are not defined above.
@@ -62,6 +66,16 @@ module Aws::S3
62
66
  end
63
67
  end
64
68
 
69
+ class EncryptionTypeMismatch < ServiceError
70
+
71
+ # @param [Seahorse::Client::RequestContext] context
72
+ # @param [String] message
73
+ # @param [Aws::S3::Types::EncryptionTypeMismatch] data
74
+ def initialize(context, message, data = Aws::EmptyStructure.new)
75
+ super(context, message, data)
76
+ end
77
+ end
78
+
65
79
  class InvalidObjectState < ServiceError
66
80
 
67
81
  # @param [Seahorse::Client::RequestContext] context
@@ -82,6 +96,26 @@ module Aws::S3
82
96
  end
83
97
  end
84
98
 
99
+ class InvalidRequest < ServiceError
100
+
101
+ # @param [Seahorse::Client::RequestContext] context
102
+ # @param [String] message
103
+ # @param [Aws::S3::Types::InvalidRequest] data
104
+ def initialize(context, message, data = Aws::EmptyStructure.new)
105
+ super(context, message, data)
106
+ end
107
+ end
108
+
109
+ class InvalidWriteOffset < ServiceError
110
+
111
+ # @param [Seahorse::Client::RequestContext] context
112
+ # @param [String] message
113
+ # @param [Aws::S3::Types::InvalidWriteOffset] data
114
+ def initialize(context, message, data = Aws::EmptyStructure.new)
115
+ super(context, message, data)
116
+ end
117
+ end
118
+
85
119
  class NoSuchBucket < ServiceError
86
120
 
87
121
  # @param [Seahorse::Client::RequestContext] context
@@ -132,5 +166,18 @@ module Aws::S3
132
166
  end
133
167
  end
134
168
 
169
+ class TooManyParts < ServiceError
170
+
171
+ # @param [Seahorse::Client::RequestContext] context
172
+ # @param [String] message
173
+ # @param [Aws::S3::Types::TooManyParts] data
174
+ def initialize(context, message, data = Aws::EmptyStructure.new)
175
+ super(context, message, data)
176
+ end
177
+ end
178
+
135
179
  end
136
180
  end
181
+
182
+ # Load customizations if they exist
183
+ require 'aws-sdk-s3/customizations/errors'
@@ -28,18 +28,10 @@ module Aws
28
28
  @chunk_size = options[:chunk_size]
29
29
  @params = {
30
30
  bucket: options[:bucket],
31
- key: options[:key],
31
+ key: options[:key]
32
32
  }
33
33
  @params[:version_id] = options[:version_id] if options[:version_id]
34
-
35
- # checksum_mode only supports the value "ENABLED"
36
- # falsey values (false/nil) or "DISABLED" should be considered
37
- # disabled and the api parameter should be unset.
38
- if (checksum_mode = options.fetch(:checksum_mode, 'ENABLED'))
39
- @params[:checksum_mode] = checksum_mode unless checksum_mode.upcase == 'DISABLED'
40
- end
41
34
  @on_checksum_validated = options[:on_checksum_validated]
42
-
43
35
  @progress_callback = options[:progress_callback]
44
36
 
45
37
  validate!
@@ -67,11 +59,6 @@ module Aws
67
59
  private
68
60
 
69
61
  def validate!
70
- if @on_checksum_validated && @params[:checksum_mode] != 'ENABLED'
71
- raise ArgumentError, "You must set checksum_mode: 'ENABLED' " +
72
- "when providing a on_checksum_validated callback"
73
- end
74
-
75
62
  if @on_checksum_validated && !@on_checksum_validated.respond_to?(:call)
76
63
  raise ArgumentError, 'on_checksum_validated must be callable'
77
64
  end
@@ -164,9 +151,7 @@ module Aws
164
151
 
165
152
  def download_in_threads(pending, total_size)
166
153
  threads = []
167
- if @progress_callback
168
- progress = MultipartProgress.new(pending, total_size, @progress_callback)
169
- end
154
+ progress = MultipartProgress.new(pending, total_size, @progress_callback) if @progress_callback
170
155
  @thread_count.times do
171
156
  thread = Thread.new do
172
157
  begin
@@ -208,9 +193,7 @@ module Aws
208
193
 
209
194
  return resp unless @on_checksum_validated
210
195
 
211
- if resp.checksum_validated
212
- @on_checksum_validated.call(resp.checksum_validated, resp)
213
- end
196
+ @on_checksum_validated.call(resp.checksum_validated, resp) if resp.checksum_validated
214
197
 
215
198
  resp
216
199
  end
@@ -251,7 +234,7 @@ module Aws
251
234
  end
252
235
 
253
236
  # @api private
254
- class MultipartProgress
237
+ class MultipartProgress
255
238
  def initialize(parts, total_size, progress_callback)
256
239
  @bytes_received = Array.new(parts.size, 0)
257
240
  @part_sizes = parts.map(&:size)
@@ -16,7 +16,6 @@ module Aws
16
16
 
17
17
  THREAD_COUNT = 10
18
18
 
19
- # @api private
20
19
  CREATE_OPTIONS = Set.new(
21
20
  Client.api.operation(:create_multipart_upload).input.shape.member_names
22
21
  )
@@ -25,11 +24,16 @@ module Aws
25
24
  Client.api.operation(:complete_multipart_upload).input.shape.member_names
26
25
  )
27
26
 
28
- # @api private
29
27
  UPLOAD_PART_OPTIONS = Set.new(
30
28
  Client.api.operation(:upload_part).input.shape.member_names
31
29
  )
32
30
 
31
+ CHECKSUM_KEYS = Set.new(
32
+ Client.api.operation(:upload_part).input.shape.members.map do |n, s|
33
+ n if s.location == 'header' && s.location_name.start_with?('x-amz-checksum-')
34
+ end.compact
35
+ )
36
+
33
37
  # @option options [Client] :client
34
38
  # @option options [Integer] :thread_count (THREAD_COUNT)
35
39
  def initialize(options = {})
@@ -121,15 +125,27 @@ module Aws
121
125
  parts
122
126
  end
123
127
 
128
+ def checksum_key?(key)
129
+ CHECKSUM_KEYS.include?(key)
130
+ end
131
+
132
+ def has_checksum_key?(keys)
133
+ keys.any? { |key| checksum_key?(key) }
134
+ end
135
+
124
136
  def create_opts(options)
125
- CREATE_OPTIONS.inject({}) do |hash, key|
137
+ opts = { checksum_algorithm: Aws::Plugins::ChecksumAlgorithm::DEFAULT_CHECKSUM }
138
+ opts[:checksum_type] = 'FULL_OBJECT' if has_checksum_key?(options.keys)
139
+ CREATE_OPTIONS.inject(opts) do |hash, key|
126
140
  hash[key] = options[key] if options.key?(key)
127
141
  hash
128
142
  end
129
143
  end
130
144
 
131
145
  def complete_opts(options)
132
- COMPLETE_OPTIONS.inject({}) do |hash, key|
146
+ opts = {}
147
+ opts[:checksum_type] = 'FULL_OBJECT' if has_checksum_key?(options.keys)
148
+ COMPLETE_OPTIONS.inject(opts) do |hash, key|
133
149
  hash[key] = options[key] if options.key?(key)
134
150
  hash
135
151
  end
@@ -137,7 +153,10 @@ module Aws
137
153
 
138
154
  def upload_part_opts(options)
139
155
  UPLOAD_PART_OPTIONS.inject({}) do |hash, key|
140
- hash[key] = options[key] if options.key?(key)
156
+ if options.key?(key)
157
+ # don't pass through checksum calculations
158
+ hash[key] = options[key] unless checksum_key?(key)
159
+ end
141
160
  hash
142
161
  end
143
162
  end
@@ -159,14 +178,13 @@ module Aws
159
178
  end
160
179
  resp = @client.upload_part(part)
161
180
  part[:body].close
162
- completed_part = {etag: resp.etag, part_number: part[:part_number]}
163
-
164
- # get the requested checksum from the response
165
- if part[:checksum_algorithm]
166
- k = "checksum_#{part[:checksum_algorithm].downcase}".to_sym
167
- completed_part[k] = resp[k]
168
- end
169
-
181
+ completed_part = {
182
+ etag: resp.etag,
183
+ part_number: part[:part_number]
184
+ }
185
+ algorithm = resp.context.params[:checksum_algorithm]
186
+ k = "checksum_#{algorithm.downcase}".to_sym
187
+ completed_part[k] = resp.send(k)
170
188
  completed.push(completed_part)
171
189
  end
172
190
  nil
@@ -103,6 +103,18 @@ module Aws::S3
103
103
  data[:checksum_algorithm]
104
104
  end
105
105
 
106
+ # The checksum type that is used to calculate the object’s checksum
107
+ # value. For more information, see [Checking object integrity][1] in the
108
+ # *Amazon S3 User Guide*.
109
+ #
110
+ #
111
+ #
112
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
113
+ # @return [String]
114
+ def checksum_type
115
+ data[:checksum_type]
116
+ end
117
+
106
118
  # @!endgroup
107
119
 
108
120
  # @return [Client]
@@ -239,6 +251,7 @@ module Aws::S3
239
251
  # multipart_upload.abort({
240
252
  # request_payer: "requester", # accepts requester
241
253
  # expected_bucket_owner: "AccountId",
254
+ # if_match_initiated_time: Time.now,
242
255
  # })
243
256
  # @param [Hash] options ({})
244
257
  # @option options [String] :request_payer
@@ -261,6 +274,17 @@ module Aws::S3
261
274
  # The account ID of the expected bucket owner. If the account ID that
262
275
  # you provide does not match the actual owner of the bucket, the request
263
276
  # fails with the HTTP status code `403 Forbidden` (access denied).
277
+ # @option options [Time,DateTime,Date,Integer,String] :if_match_initiated_time
278
+ # If present, this header aborts an in progress multipart upload only if
279
+ # it was initiated on the provided timestamp. If the initiated timestamp
280
+ # of the multipart upload does not match the provided value, the
281
+ # operation returns a `412 Precondition Failed` error. If the initiated
282
+ # timestamp matches or if the multipart upload doesn’t exist, the
283
+ # operation returns a `204 Success (No Content)` response.
284
+ #
285
+ # <note markdown="1"> This functionality is only supported for directory buckets.
286
+ #
287
+ # </note>
264
288
  # @return [Types::AbortMultipartUploadOutput]
265
289
  def abort(options = {})
266
290
  options = options.merge(
@@ -283,6 +307,7 @@ module Aws::S3
283
307
  # etag: "ETag",
284
308
  # checksum_crc32: "ChecksumCRC32",
285
309
  # checksum_crc32c: "ChecksumCRC32C",
310
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
286
311
  # checksum_sha1: "ChecksumSHA1",
287
312
  # checksum_sha256: "ChecksumSHA256",
288
313
  # part_number: 1,
@@ -291,10 +316,14 @@ module Aws::S3
291
316
  # },
292
317
  # checksum_crc32: "ChecksumCRC32",
293
318
  # checksum_crc32c: "ChecksumCRC32C",
319
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
294
320
  # checksum_sha1: "ChecksumSHA1",
295
321
  # checksum_sha256: "ChecksumSHA256",
322
+ # checksum_type: "COMPOSITE", # accepts COMPOSITE, FULL_OBJECT
323
+ # mpu_object_size: 1,
296
324
  # request_payer: "requester", # accepts requester
297
325
  # expected_bucket_owner: "AccountId",
326
+ # if_match: "IfMatch",
298
327
  # if_none_match: "IfNoneMatch",
299
328
  # sse_customer_algorithm: "SSECustomerAlgorithm",
300
329
  # sse_customer_key: "SSECustomerKey",
@@ -306,9 +335,9 @@ module Aws::S3
306
335
  # @option options [String] :checksum_crc32
307
336
  # This header can be used as a data integrity check to verify that the
308
337
  # data received is the same data that was originally sent. This header
309
- # specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
310
- # more information, see [Checking object integrity][1] in the *Amazon S3
311
- # User Guide*.
338
+ # specifies the Base64 encoded, 32-bit `CRC32` checksum of the object.
339
+ # For more information, see [Checking object integrity][1] in the
340
+ # *Amazon S3 User Guide*.
312
341
  #
313
342
  #
314
343
  #
@@ -316,17 +345,28 @@ module Aws::S3
316
345
  # @option options [String] :checksum_crc32c
317
346
  # This header can be used as a data integrity check to verify that the
318
347
  # data received is the same data that was originally sent. This header
319
- # specifies the base64-encoded, 32-bit CRC32C checksum of the object.
348
+ # specifies the Base64 encoded, 32-bit `CRC32C` checksum of the object.
320
349
  # For more information, see [Checking object integrity][1] in the
321
350
  # *Amazon S3 User Guide*.
322
351
  #
323
352
  #
324
353
  #
325
354
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
355
+ # @option options [String] :checksum_crc64nvme
356
+ # This header can be used as a data integrity check to verify that the
357
+ # data received is the same data that was originally sent. This header
358
+ # specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the
359
+ # object. The `CRC64NVME` checksum is always a full object checksum. For
360
+ # more information, see [Checking object integrity in the Amazon S3 User
361
+ # Guide][1].
362
+ #
363
+ #
364
+ #
365
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
326
366
  # @option options [String] :checksum_sha1
327
367
  # This header can be used as a data integrity check to verify that the
328
368
  # data received is the same data that was originally sent. This header
329
- # specifies the base64-encoded, 160-bit SHA-1 digest of the object. For
369
+ # specifies the Base64 encoded, 160-bit `SHA1` digest of the object. For
330
370
  # more information, see [Checking object integrity][1] in the *Amazon S3
331
371
  # User Guide*.
332
372
  #
@@ -336,13 +376,28 @@ module Aws::S3
336
376
  # @option options [String] :checksum_sha256
337
377
  # This header can be used as a data integrity check to verify that the
338
378
  # data received is the same data that was originally sent. This header
339
- # specifies the base64-encoded, 256-bit SHA-256 digest of the object.
379
+ # specifies the Base64 encoded, 256-bit `SHA256` digest of the object.
340
380
  # For more information, see [Checking object integrity][1] in the
341
381
  # *Amazon S3 User Guide*.
342
382
  #
343
383
  #
344
384
  #
345
385
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
386
+ # @option options [String] :checksum_type
387
+ # This header specifies the checksum type of the object, which
388
+ # determines how part-level checksums are combined to create an
389
+ # object-level checksum for multipart objects. You can use this header
390
+ # as a data integrity check to verify that the checksum type that is
391
+ # received is the same checksum that was specified. If the checksum type
392
+ # doesn’t match the checksum type that was specified for the object
393
+ # during the `CreateMultipartUpload` request, it’ll result in a
394
+ # `BadDigest` error. For more information, see Checking object integrity
395
+ # in the Amazon S3 User Guide.
396
+ # @option options [Integer] :mpu_object_size
397
+ # The expected total object size of the multipart upload request. If
398
+ # there’s a mismatch between the specified object size value and the
399
+ # actual object size value, it results in an `HTTP 400 InvalidRequest`
400
+ # error.
346
401
  # @option options [String] :request_payer
347
402
  # Confirms that the requester knows that they will be charged for the
348
403
  # request. Bucket owners need not specify this parameter in their
@@ -363,6 +418,26 @@ module Aws::S3
363
418
  # The account ID of the expected bucket owner. If the account ID that
364
419
  # you provide does not match the actual owner of the bucket, the request
365
420
  # fails with the HTTP status code `403 Forbidden` (access denied).
421
+ # @option options [String] :if_match
422
+ # Uploads the object only if the ETag (entity tag) value provided during
423
+ # the WRITE operation matches the ETag of the object in S3. If the ETag
424
+ # values do not match, the operation returns a `412 Precondition Failed`
425
+ # error.
426
+ #
427
+ # If a conflicting operation occurs during the upload S3 returns a `409
428
+ # ConditionalRequestConflict` response. On a 409 failure you should
429
+ # fetch the object's ETag, re-initiate the multipart upload with
430
+ # `CreateMultipartUpload`, and re-upload each part.
431
+ #
432
+ # Expects the ETag value as a string.
433
+ #
434
+ # For more information about conditional requests, see [RFC 7232][1], or
435
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
436
+ #
437
+ #
438
+ #
439
+ # [1]: https://tools.ietf.org/html/rfc7232
440
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
366
441
  # @option options [String] :if_none_match
367
442
  # Uploads the object only if the object key name does not already exist
368
443
  # in the bucket specified. Otherwise, Amazon S3 returns a `412
@@ -609,3 +684,6 @@ module Aws::S3
609
684
  class Collection < Aws::Resources::Collection; end
610
685
  end
611
686
  end
687
+
688
+ # Load customizations if they exist
689
+ require 'aws-sdk-s3/customizations/multipart_upload'
@@ -76,11 +76,10 @@ module Aws::S3
76
76
  data[:size]
77
77
  end
78
78
 
79
- # This header can be used as a data integrity check to verify that the
80
- # data received is the same data that was originally sent. This header
81
- # specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
82
- # more information, see [Checking object integrity][1] in the *Amazon S3
83
- # User Guide*.
79
+ # The Base64 encoded, 32-bit `CRC32` checksum of the part. This checksum
80
+ # is present if the object was uploaded with the `CRC32` checksum
81
+ # algorithm. For more information, see [Checking object integrity][1] in
82
+ # the *Amazon S3 User Guide*.
84
83
  #
85
84
  #
86
85
  #
@@ -90,45 +89,51 @@ module Aws::S3
90
89
  data[:checksum_crc32]
91
90
  end
92
91
 
93
- # The base64-encoded, 32-bit CRC32C checksum of the object. This will
94
- # only be present if it was uploaded with the object. When you use an
95
- # API operation on an object that was uploaded using multipart uploads,
96
- # this value may not be a direct checksum value of the full object.
97
- # Instead, it's a calculation based on the checksum values of each
98
- # individual part. For more information about how checksums are
99
- # calculated with multipart uploads, see [ Checking object integrity][1]
100
- # in the *Amazon S3 User Guide*.
92
+ # The Base64 encoded, 32-bit `CRC32C` checksum of the part. This
93
+ # checksum is present if the object was uploaded with the `CRC32C`
94
+ # checksum algorithm. For more information, see [Checking object
95
+ # integrity][1] in the *Amazon S3 User Guide*.
101
96
  #
102
97
  #
103
98
  #
104
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums
99
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
105
100
  # @return [String]
106
101
  def checksum_crc32c
107
102
  data[:checksum_crc32c]
108
103
  end
109
104
 
110
- # The base64-encoded, 160-bit SHA-1 digest of the object. This will only
111
- # be present if it was uploaded with the object. When you use the API
112
- # operation on an object that was uploaded using multipart uploads, this
113
- # value may not be a direct checksum value of the full object. Instead,
114
- # it's a calculation based on the checksum values of each individual
115
- # part. For more information about how checksums are calculated with
116
- # multipart uploads, see [ Checking object integrity][1] in the *Amazon
117
- # S3 User Guide*.
105
+ # The Base64 encoded, 64-bit `CRC64NVME` checksum of the part. This
106
+ # checksum is present if the multipart upload request was created with
107
+ # the `CRC64NVME` checksum algorithm, or if the object was uploaded
108
+ # without a checksum (and Amazon S3 added the default checksum,
109
+ # `CRC64NVME`, to the uploaded object). For more information, see
110
+ # [Checking object integrity][1] in the *Amazon S3 User Guide*.
118
111
  #
119
112
  #
120
113
  #
121
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums
114
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
115
+ # @return [String]
116
+ def checksum_crc64nvme
117
+ data[:checksum_crc64nvme]
118
+ end
119
+
120
+ # The Base64 encoded, 160-bit `SHA1` checksum of the part. This checksum
121
+ # is present if the object was uploaded with the `SHA1` checksum
122
+ # algorithm. For more information, see [Checking object integrity][1] in
123
+ # the *Amazon S3 User Guide*.
124
+ #
125
+ #
126
+ #
127
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
122
128
  # @return [String]
123
129
  def checksum_sha1
124
130
  data[:checksum_sha1]
125
131
  end
126
132
 
127
- # This header can be used as a data integrity check to verify that the
128
- # data received is the same data that was originally sent. This header
129
- # specifies the base64-encoded, 256-bit SHA-256 digest of the object.
130
- # For more information, see [Checking object integrity][1] in the
131
- # *Amazon S3 User Guide*.
133
+ # The Base64 encoded, 256-bit `SHA256` checksum of the part. This
134
+ # checksum is present if the object was uploaded with the `SHA256`
135
+ # checksum algorithm. For more information, see [Checking object
136
+ # integrity][1] in the *Amazon S3 User Guide*.
132
137
  #
133
138
  #
134
139
  #
@@ -512,9 +517,10 @@ module Aws::S3
512
517
  # body: source_file,
513
518
  # content_length: 1,
514
519
  # content_md5: "ContentMD5",
515
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
520
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
516
521
  # checksum_crc32: "ChecksumCRC32",
517
522
  # checksum_crc32c: "ChecksumCRC32C",
523
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
518
524
  # checksum_sha1: "ChecksumSHA1",
519
525
  # checksum_sha256: "ChecksumSHA256",
520
526
  # sse_customer_algorithm: "SSECustomerAlgorithm",
@@ -530,7 +536,7 @@ module Aws::S3
530
536
  # Size of the body in bytes. This parameter is useful when the size of
531
537
  # the body cannot be determined automatically.
532
538
  # @option options [String] :content_md5
533
- # The base64-encoded 128-bit MD5 digest of the part data. This parameter
539
+ # The Base64 encoded 128-bit MD5 digest of the part data. This parameter
534
540
  # is auto-populated when using the command from the CLI. This parameter
535
541
  # is required if object lock parameters are specified.
536
542
  #
@@ -558,9 +564,9 @@ module Aws::S3
558
564
  # @option options [String] :checksum_crc32
559
565
  # This header can be used as a data integrity check to verify that the
560
566
  # data received is the same data that was originally sent. This header
561
- # specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
562
- # more information, see [Checking object integrity][1] in the *Amazon S3
563
- # User Guide*.
567
+ # specifies the Base64 encoded, 32-bit `CRC32` checksum of the object.
568
+ # For more information, see [Checking object integrity][1] in the
569
+ # *Amazon S3 User Guide*.
564
570
  #
565
571
  #
566
572
  #
@@ -568,7 +574,17 @@ module Aws::S3
568
574
  # @option options [String] :checksum_crc32c
569
575
  # This header can be used as a data integrity check to verify that the
570
576
  # data received is the same data that was originally sent. This header
571
- # specifies the base64-encoded, 32-bit CRC32C checksum of the object.
577
+ # specifies the Base64 encoded, 32-bit `CRC32C` checksum of the object.
578
+ # For more information, see [Checking object integrity][1] in the
579
+ # *Amazon S3 User Guide*.
580
+ #
581
+ #
582
+ #
583
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
584
+ # @option options [String] :checksum_crc64nvme
585
+ # This header can be used as a data integrity check to verify that the
586
+ # data received is the same data that was originally sent. This header
587
+ # specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the part.
572
588
  # For more information, see [Checking object integrity][1] in the
573
589
  # *Amazon S3 User Guide*.
574
590
  #
@@ -578,7 +594,7 @@ module Aws::S3
578
594
  # @option options [String] :checksum_sha1
579
595
  # This header can be used as a data integrity check to verify that the
580
596
  # data received is the same data that was originally sent. This header
581
- # specifies the base64-encoded, 160-bit SHA-1 digest of the object. For
597
+ # specifies the Base64 encoded, 160-bit `SHA1` digest of the object. For
582
598
  # more information, see [Checking object integrity][1] in the *Amazon S3
583
599
  # User Guide*.
584
600
  #
@@ -588,7 +604,7 @@ module Aws::S3
588
604
  # @option options [String] :checksum_sha256
589
605
  # This header can be used as a data integrity check to verify that the
590
606
  # data received is the same data that was originally sent. This header
591
- # specifies the base64-encoded, 256-bit SHA-256 digest of the object.
607
+ # specifies the Base64 encoded, 256-bit `SHA256` digest of the object.
592
608
  # For more information, see [Checking object integrity][1] in the
593
609
  # *Amazon S3 User Guide*.
594
610
  #