aws-sdk-s3 1.174.0 → 1.179.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +40 -26
  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 +1409 -867
  16. data/lib/aws-sdk-s3/client_api.rb +128 -2
  17. data/lib/aws-sdk-s3/endpoint_provider.rb +36 -0
  18. data/lib/aws-sdk-s3/endpoints.rb +42 -0
  19. data/lib/aws-sdk-s3/file_downloader.rb +4 -21
  20. data/lib/aws-sdk-s3/multipart_file_uploader.rb +31 -13
  21. data/lib/aws-sdk-s3/multipart_upload.rb +48 -6
  22. data/lib/aws-sdk-s3/multipart_upload_part.rb +52 -36
  23. data/lib/aws-sdk-s3/object.rb +111 -59
  24. data/lib/aws-sdk-s3/object_acl.rb +4 -4
  25. data/lib/aws-sdk-s3/object_summary.rb +63 -28
  26. data/lib/aws-sdk-s3/object_version.rb +21 -8
  27. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
  28. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +11 -20
  29. data/lib/aws-sdk-s3/plugins/md5s.rb +10 -71
  30. data/lib/aws-sdk-s3/presigner.rb +5 -5
  31. data/lib/aws-sdk-s3/resource.rb +9 -8
  32. data/lib/aws-sdk-s3/types.rb +1264 -528
  33. data/lib/aws-sdk-s3.rb +1 -1
  34. data/sig/bucket.rbs +5 -4
  35. data/sig/bucket_acl.rbs +1 -1
  36. data/sig/bucket_cors.rbs +1 -1
  37. data/sig/bucket_lifecycle.rbs +1 -1
  38. data/sig/bucket_lifecycle_configuration.rbs +1 -1
  39. data/sig/bucket_logging.rbs +1 -1
  40. data/sig/bucket_policy.rbs +1 -1
  41. data/sig/bucket_request_payment.rbs +1 -1
  42. data/sig/bucket_tagging.rbs +1 -1
  43. data/sig/bucket_versioning.rbs +3 -3
  44. data/sig/bucket_website.rbs +1 -1
  45. data/sig/client.rbs +85 -31
  46. data/sig/multipart_upload.rbs +8 -1
  47. data/sig/multipart_upload_part.rbs +5 -1
  48. data/sig/object.rbs +13 -5
  49. data/sig/object_acl.rbs +1 -1
  50. data/sig/object_summary.rbs +11 -6
  51. data/sig/object_version.rbs +5 -2
  52. data/sig/resource.rbs +4 -2
  53. data/sig/types.rbs +126 -34
  54. metadata +5 -5
  55. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +0 -31
@@ -66,7 +66,9 @@ module Aws::S3
66
66
  # providing object expiration information. The value of the `rule-id` is
67
67
  # URL-encoded.
68
68
  #
69
- # <note markdown="1"> This functionality is not supported for directory buckets.
69
+ # <note markdown="1"> Object expiration information is not returned in directory buckets and
70
+ # this header returns the value "`NotImplemented`" in all responses
71
+ # for directory buckets.
70
72
  #
71
73
  # </note>
72
74
  #
@@ -132,14 +134,14 @@ module Aws::S3
132
134
  data[:content_length]
133
135
  end
134
136
 
135
- # The base64-encoded, 32-bit CRC-32 checksum of the object. This will
136
- # only be present if it was uploaded with the object. When you use an
137
- # API operation on an object that was uploaded using multipart uploads,
138
- # this value may not be a direct checksum value of the full object.
139
- # Instead, it's a calculation based on the checksum values of each
140
- # individual part. For more information about how checksums are
141
- # calculated with multipart uploads, see [ Checking object integrity][1]
142
- # in the *Amazon S3 User Guide*.
137
+ # The Base64 encoded, 32-bit `CRC-32 checksum` of the object. This
138
+ # checksum is only be present if the checksum was uploaded with the
139
+ # object. When you use an API operation on an object that was uploaded
140
+ # using multipart uploads, this value may not be a direct checksum value
141
+ # of the full object. Instead, it's a calculation based on the checksum
142
+ # values of each individual part. For more information about how
143
+ # checksums are calculated with multipart uploads, see [ Checking object
144
+ # integrity][1] in the *Amazon S3 User Guide*.
143
145
  #
144
146
  #
145
147
  #
@@ -149,14 +151,14 @@ module Aws::S3
149
151
  data[:checksum_crc32]
150
152
  end
151
153
 
152
- # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
153
- # only be present if it was uploaded with the object. When you use an
154
- # API operation on an object that was uploaded using multipart uploads,
155
- # this value may not be a direct checksum value of the full object.
156
- # Instead, it's a calculation based on the checksum values of each
157
- # individual part. For more information about how checksums are
158
- # calculated with multipart uploads, see [ Checking object integrity][1]
159
- # in the *Amazon S3 User Guide*.
154
+ # The Base64 encoded, 32-bit `CRC-32C` checksum of the object. This
155
+ # checksum is only present if the checksum was uploaded with the object.
156
+ # When you use an API operation on an object that was uploaded using
157
+ # multipart uploads, this value may not be a direct checksum value of
158
+ # the full object. Instead, it's a calculation based on the checksum
159
+ # values of each individual part. For more information about how
160
+ # checksums are calculated with multipart uploads, see [ Checking object
161
+ # integrity][1] in the *Amazon S3 User Guide*.
160
162
  #
161
163
  #
162
164
  #
@@ -166,14 +168,26 @@ module Aws::S3
166
168
  data[:checksum_crc32c]
167
169
  end
168
170
 
169
- # The base64-encoded, 160-bit SHA-1 digest of the object. This will only
170
- # be present if it was uploaded with the object. When you use the API
171
- # operation on an object that was uploaded using multipart uploads, this
172
- # value may not be a direct checksum value of the full object. Instead,
173
- # it's a calculation based on the checksum values of each individual
174
- # part. For more information about how checksums are calculated with
175
- # multipart uploads, see [ Checking object integrity][1] in the *Amazon
176
- # S3 User Guide*.
171
+ # The Base64 encoded, 64-bit `CRC-64NVME` checksum of the object. For
172
+ # more information, see [Checking object integrity in the Amazon S3 User
173
+ # Guide][1].
174
+ #
175
+ #
176
+ #
177
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
178
+ # @return [String]
179
+ def checksum_crc64nvme
180
+ data[:checksum_crc64nvme]
181
+ end
182
+
183
+ # The Base64 encoded, 160-bit `SHA-1` digest of the object. This will
184
+ # only be present if the object was uploaded with the object. When you
185
+ # use the API operation on an object that was uploaded using multipart
186
+ # uploads, this value may not be a direct checksum value of the full
187
+ # object. Instead, it's a calculation based on the checksum values of
188
+ # each individual part. For more information about how checksums are
189
+ # calculated with multipart uploads, see [ Checking object integrity][1]
190
+ # in the *Amazon S3 User Guide*.
177
191
  #
178
192
  #
179
193
  #
@@ -183,12 +197,12 @@ module Aws::S3
183
197
  data[:checksum_sha1]
184
198
  end
185
199
 
186
- # The base64-encoded, 256-bit SHA-256 digest of the object. This will
187
- # only be present if it was uploaded with the object. When you use an
188
- # API operation on an object that was uploaded using multipart uploads,
189
- # this value may not be a direct checksum value of the full object.
190
- # Instead, it's a calculation based on the checksum values of each
191
- # individual part. For more information about how checksums are
200
+ # The Base64 encoded, 256-bit `SHA-256` digest of the object. This will
201
+ # only be present if the object was uploaded with the object. When you
202
+ # use an API operation on an object that was uploaded using multipart
203
+ # uploads, this value may not be a direct checksum value of the full
204
+ # object. Instead, it's a calculation based on the checksum values of
205
+ # each individual part. For more information about how checksums are
192
206
  # calculated with multipart uploads, see [ Checking object integrity][1]
193
207
  # in the *Amazon S3 User Guide*.
194
208
  #
@@ -200,6 +214,21 @@ module Aws::S3
200
214
  data[:checksum_sha256]
201
215
  end
202
216
 
217
+ # The checksum type, which determines how part-level checksums are
218
+ # combined to create an object-level checksum for multipart objects. You
219
+ # can use this header response to verify that the checksum type that is
220
+ # received is the same checksum type that was specified in
221
+ # `CreateMultipartUpload` request. For more information, see [Checking
222
+ # object integrity in the Amazon S3 User Guide][1].
223
+ #
224
+ #
225
+ #
226
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
227
+ # @return [String]
228
+ def checksum_type
229
+ data[:checksum_type]
230
+ end
231
+
203
232
  # An entity tag (ETag) is an opaque identifier assigned by a web server
204
233
  # to a specific version of a resource found at a URL.
205
234
  # @return [String]
@@ -674,7 +703,7 @@ module Aws::S3
674
703
  # object.copy_from({
675
704
  # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
676
705
  # cache_control: "CacheControl",
677
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
706
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
678
707
  # content_disposition: "ContentDisposition",
679
708
  # content_encoding: "ContentEncoding",
680
709
  # content_language: "ContentLanguage",
@@ -1808,7 +1837,8 @@ module Aws::S3
1808
1837
  # object_lock_retain_until_date: Time.now,
1809
1838
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
1810
1839
  # expected_bucket_owner: "AccountId",
1811
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1840
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
1841
+ # checksum_type: "COMPOSITE", # accepts COMPOSITE, FULL_OBJECT
1812
1842
  # })
1813
1843
  # @param [Hash] options ({})
1814
1844
  # @option options [String] :acl
@@ -2244,7 +2274,7 @@ module Aws::S3
2244
2274
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
2245
2275
  # @option options [String] :ssekms_encryption_context
2246
2276
  # Specifies the Amazon Web Services KMS Encryption Context to use for
2247
- # object encryption. The value of this header is a Base64-encoded string
2277
+ # object encryption. The value of this header is a Base64 encoded string
2248
2278
  # of a UTF-8 encoded JSON, which contains the encryption context as
2249
2279
  # key-value pairs.
2250
2280
  #
@@ -2333,6 +2363,14 @@ module Aws::S3
2333
2363
  #
2334
2364
  #
2335
2365
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2366
+ # @option options [String] :checksum_type
2367
+ # Indicates the checksum type that you want Amazon S3 to use to
2368
+ # calculate the object’s checksum value. For more information, see
2369
+ # [Checking object integrity in the Amazon S3 User Guide][1].
2370
+ #
2371
+ #
2372
+ #
2373
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2336
2374
  # @return [MultipartUpload]
2337
2375
  def initiate_multipart_upload(options = {})
2338
2376
  options = options.merge(
@@ -2362,9 +2400,10 @@ module Aws::S3
2362
2400
  # content_length: 1,
2363
2401
  # content_md5: "ContentMD5",
2364
2402
  # content_type: "ContentType",
2365
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
2403
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
2366
2404
  # checksum_crc32: "ChecksumCRC32",
2367
2405
  # checksum_crc32c: "ChecksumCRC32C",
2406
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
2368
2407
  # checksum_sha1: "ChecksumSHA1",
2369
2408
  # checksum_sha256: "ChecksumSHA256",
2370
2409
  # expires: Time.now,
@@ -2470,7 +2509,7 @@ module Aws::S3
2470
2509
  #
2471
2510
  # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length
2472
2511
  # @option options [String] :content_md5
2473
- # The base64-encoded 128-bit MD5 digest of the message (without the
2512
+ # The Base64 encoded 128-bit `MD5` digest of the message (without the
2474
2513
  # headers) according to RFC 1864. This header can be used as a message
2475
2514
  # integrity check to verify that the data is the same data that was
2476
2515
  # originally sent. Although it is optional, we recommend using the
@@ -2513,22 +2552,23 @@ module Aws::S3
2513
2552
  # For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
2514
2553
  # the supported algorithm from the following list:
2515
2554
  #
2516
- # * `CRC32`
2555
+ # * `CRC-32`
2556
+ #
2557
+ # * `CRC-32C`
2517
2558
  #
2518
- # * `CRC32C`
2559
+ # * `CRC-64NVME`
2519
2560
  #
2520
- # * `SHA1`
2561
+ # * `SHA-1`
2521
2562
  #
2522
- # * `SHA256`
2563
+ # * `SHA-256`
2523
2564
  #
2524
2565
  # For more information, see [Checking object integrity][1] in the
2525
2566
  # *Amazon S3 User Guide*.
2526
2567
  #
2527
2568
  # If the individual checksum value you provide through
2528
2569
  # `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
2529
- # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 ignores any
2530
- # provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
2531
- # that matches the provided value in `x-amz-checksum-algorithm `.
2570
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
2571
+ # request with a `BadDigest` error.
2532
2572
  #
2533
2573
  # <note markdown="1"> The `Content-MD5` or `x-amz-sdk-checksum-algorithm` header is required
2534
2574
  # for any request to upload an object with a retention period configured
@@ -2548,7 +2588,7 @@ module Aws::S3
2548
2588
  # @option options [String] :checksum_crc32
2549
2589
  # This header can be used as a data integrity check to verify that the
2550
2590
  # data received is the same data that was originally sent. This header
2551
- # specifies the base64-encoded, 32-bit CRC-32 checksum of the object.
2591
+ # specifies the Base64 encoded, 32-bit `CRC-32` checksum of the object.
2552
2592
  # For more information, see [Checking object integrity][1] in the
2553
2593
  # *Amazon S3 User Guide*.
2554
2594
  #
@@ -2558,19 +2598,30 @@ module Aws::S3
2558
2598
  # @option options [String] :checksum_crc32c
2559
2599
  # This header can be used as a data integrity check to verify that the
2560
2600
  # data received is the same data that was originally sent. This header
2561
- # specifies the base64-encoded, 32-bit CRC-32C checksum of the object.
2601
+ # specifies the Base64 encoded, 32-bit `CRC-32C` checksum of the object.
2562
2602
  # For more information, see [Checking object integrity][1] in the
2563
2603
  # *Amazon S3 User Guide*.
2564
2604
  #
2565
2605
  #
2566
2606
  #
2567
2607
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2608
+ # @option options [String] :checksum_crc64nvme
2609
+ # This header can be used as a data integrity check to verify that the
2610
+ # data received is the same data that was originally sent. This header
2611
+ # specifies the Base64 encoded, 64-bit `CRC-64NVME` checksum of the
2612
+ # object. The `CRC-64NVME` checksum is always a full object checksum.
2613
+ # For more information, see [Checking object integrity in the Amazon S3
2614
+ # User Guide][1].
2615
+ #
2616
+ #
2617
+ #
2618
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2568
2619
  # @option options [String] :checksum_sha1
2569
2620
  # This header can be used as a data integrity check to verify that the
2570
2621
  # data received is the same data that was originally sent. This header
2571
- # specifies the base64-encoded, 160-bit SHA-1 digest of the object. For
2572
- # more information, see [Checking object integrity][1] in the *Amazon S3
2573
- # User Guide*.
2622
+ # specifies the Base64 encoded, 160-bit `SHA-1` digest of the object.
2623
+ # For more information, see [Checking object integrity][1] in the
2624
+ # *Amazon S3 User Guide*.
2574
2625
  #
2575
2626
  #
2576
2627
  #
@@ -2578,7 +2629,7 @@ module Aws::S3
2578
2629
  # @option options [String] :checksum_sha256
2579
2630
  # This header can be used as a data integrity check to verify that the
2580
2631
  # data received is the same data that was originally sent. This header
2581
- # specifies the base64-encoded, 256-bit SHA-256 digest of the object.
2632
+ # specifies the Base64 encoded, 256-bit `SHA-256` digest of the object.
2582
2633
  # For more information, see [Checking object integrity][1] in the
2583
2634
  # *Amazon S3 User Guide*.
2584
2635
  #
@@ -2847,7 +2898,7 @@ module Aws::S3
2847
2898
  # @option options [String] :ssekms_encryption_context
2848
2899
  # Specifies the Amazon Web Services KMS Encryption Context as an
2849
2900
  # additional encryption context to use for object encryption. The value
2850
- # of this header is a Base64-encoded string of a UTF-8 encoded JSON,
2901
+ # of this header is a Base64 encoded string of a UTF-8 encoded JSON,
2851
2902
  # which contains the encryption context as key-value pairs. This value
2852
2903
  # is stored as object metadata and automatically gets passed on to
2853
2904
  # Amazon Web Services KMS for future `GetObject` operations on this
@@ -3042,7 +3093,7 @@ module Aws::S3
3042
3093
  # },
3043
3094
  # },
3044
3095
  # request_payer: "requester", # accepts requester
3045
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
3096
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
3046
3097
  # expected_bucket_owner: "AccountId",
3047
3098
  # })
3048
3099
  # @param [Hash] options ({})
@@ -3409,7 +3460,7 @@ module Aws::S3
3409
3460
  # request_payer: "requester", # accepts requester
3410
3461
  # bypass_governance_retention: false,
3411
3462
  # expected_bucket_owner: "AccountId",
3412
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
3463
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
3413
3464
  # })
3414
3465
  # @param options ({})
3415
3466
  # @option options [String] :mfa
@@ -3473,22 +3524,23 @@ module Aws::S3
3473
3524
  # For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
3474
3525
  # the supported algorithm from the following list:
3475
3526
  #
3476
- # * `CRC32`
3527
+ # * `CRC-32`
3528
+ #
3529
+ # * `CRC-32C`
3477
3530
  #
3478
- # * `CRC32C`
3531
+ # * `CRC-64NVME`
3479
3532
  #
3480
- # * `SHA1`
3533
+ # * `SHA-1`
3481
3534
  #
3482
- # * `SHA256`
3535
+ # * `SHA-256`
3483
3536
  #
3484
3537
  # For more information, see [Checking object integrity][1] in the
3485
3538
  # *Amazon S3 User Guide*.
3486
3539
  #
3487
3540
  # If the individual checksum value you provide through
3488
3541
  # `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
3489
- # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 ignores any
3490
- # provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
3491
- # that matches the provided value in `x-amz-checksum-algorithm `.
3542
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
3543
+ # request with a `BadDigest` error.
3492
3544
  #
3493
3545
  # If you provide an individual checksum, Amazon S3 ignores any provided
3494
3546
  # `ChecksumAlgorithm` parameter.
@@ -229,7 +229,7 @@ module Aws::S3
229
229
  # },
230
230
  # },
231
231
  # content_md5: "ContentMD5",
232
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
232
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
233
233
  # grant_full_control: "GrantFullControl",
234
234
  # grant_read: "GrantRead",
235
235
  # grant_read_acp: "GrantReadACP",
@@ -251,9 +251,9 @@ module Aws::S3
251
251
  # Contains the elements that set the ACL permissions for an object per
252
252
  # grantee.
253
253
  # @option options [String] :content_md5
254
- # The base64-encoded 128-bit MD5 digest of the data. This header must be
255
- # used as a message integrity check to verify that the request body was
256
- # not corrupted in transit. For more information, go to [RFC
254
+ # The Base64 encoded 128-bit `MD5` digest of the data. This header must
255
+ # be used as a message integrity check to verify that the request body
256
+ # was not corrupted in transit. For more information, go to [RFC
257
257
  # 1864.&gt;][1]
258
258
  #
259
259
  # For requests made using the Amazon Web Services Command Line Interface
@@ -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