aws-sdk-s3 1.196.1 → 1.213.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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +116 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +17 -17
  5. data/lib/aws-sdk-s3/bucket_acl.rb +1 -1
  6. data/lib/aws-sdk-s3/bucket_versioning.rb +33 -0
  7. data/lib/aws-sdk-s3/client.rb +1271 -453
  8. data/lib/aws-sdk-s3/client_api.rb +115 -0
  9. data/lib/aws-sdk-s3/customizations/object.rb +39 -24
  10. data/lib/aws-sdk-s3/customizations.rb +3 -1
  11. data/lib/aws-sdk-s3/default_executor.rb +103 -0
  12. data/lib/aws-sdk-s3/encryption/client.rb +2 -2
  13. data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +2 -0
  14. data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +2 -0
  15. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +2 -0
  16. data/lib/aws-sdk-s3/encryptionV2/client.rb +98 -23
  17. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +7 -162
  18. data/lib/aws-sdk-s3/encryptionV2/decryption.rb +205 -0
  19. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +17 -0
  20. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +2 -0
  21. data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +2 -0
  22. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +8 -0
  23. data/lib/aws-sdk-s3/encryptionV2/utils.rb +5 -0
  24. data/lib/aws-sdk-s3/encryptionV3/client.rb +885 -0
  25. data/lib/aws-sdk-s3/encryptionV3/decrypt_handler.rb +98 -0
  26. data/lib/aws-sdk-s3/encryptionV3/decryption.rb +244 -0
  27. data/lib/aws-sdk-s3/encryptionV3/default_cipher_provider.rb +159 -0
  28. data/lib/aws-sdk-s3/encryptionV3/default_key_provider.rb +35 -0
  29. data/lib/aws-sdk-s3/encryptionV3/encrypt_handler.rb +98 -0
  30. data/lib/aws-sdk-s3/encryptionV3/errors.rb +47 -0
  31. data/lib/aws-sdk-s3/encryptionV3/io_auth_decrypter.rb +60 -0
  32. data/lib/aws-sdk-s3/encryptionV3/io_decrypter.rb +35 -0
  33. data/lib/aws-sdk-s3/encryptionV3/io_encrypter.rb +84 -0
  34. data/lib/aws-sdk-s3/encryptionV3/key_provider.rb +28 -0
  35. data/lib/aws-sdk-s3/encryptionV3/kms_cipher_provider.rb +159 -0
  36. data/lib/aws-sdk-s3/encryptionV3/materials.rb +58 -0
  37. data/lib/aws-sdk-s3/encryptionV3/utils.rb +321 -0
  38. data/lib/aws-sdk-s3/encryption_v2.rb +1 -0
  39. data/lib/aws-sdk-s3/encryption_v3.rb +24 -0
  40. data/lib/aws-sdk-s3/endpoint_parameters.rb +17 -17
  41. data/lib/aws-sdk-s3/endpoint_provider.rb +241 -68
  42. data/lib/aws-sdk-s3/endpoints.rb +39 -0
  43. data/lib/aws-sdk-s3/errors.rb +11 -0
  44. data/lib/aws-sdk-s3/file_downloader.rb +192 -104
  45. data/lib/aws-sdk-s3/file_uploader.rb +17 -13
  46. data/lib/aws-sdk-s3/multipart_file_uploader.rb +82 -69
  47. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +96 -107
  48. data/lib/aws-sdk-s3/multipart_upload.rb +12 -12
  49. data/lib/aws-sdk-s3/multipart_upload_part.rb +8 -8
  50. data/lib/aws-sdk-s3/object.rb +88 -59
  51. data/lib/aws-sdk-s3/object_acl.rb +5 -5
  52. data/lib/aws-sdk-s3/object_summary.rb +70 -41
  53. data/lib/aws-sdk-s3/object_version.rb +23 -25
  54. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +18 -5
  55. data/lib/aws-sdk-s3/plugins/endpoints.rb +1 -1
  56. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +58 -34
  57. data/lib/aws-sdk-s3/transfer_manager.rb +321 -0
  58. data/lib/aws-sdk-s3/types.rb +687 -330
  59. data/lib/aws-sdk-s3.rb +1 -1
  60. data/sig/bucket.rbs +1 -1
  61. data/sig/client.rbs +62 -12
  62. data/sig/errors.rbs +2 -0
  63. data/sig/multipart_upload.rbs +1 -1
  64. data/sig/object.rbs +7 -5
  65. data/sig/object_summary.rbs +7 -5
  66. data/sig/types.rbs +84 -14
  67. metadata +21 -3
@@ -136,10 +136,10 @@ module Aws::S3
136
136
  end
137
137
 
138
138
  # The Base64 encoded, 32-bit `CRC32 checksum` of the object. This
139
- # checksum is only be present if the checksum was uploaded with the
140
- # object. When you use an API operation on an object that was uploaded
141
- # using multipart uploads, this value may not be a direct checksum value
142
- # of the full object. Instead, it's a calculation based on the checksum
139
+ # checksum is only present if the checksum was uploaded with the object.
140
+ # When you use an API operation on an object that was uploaded using
141
+ # multipart uploads, this value may not be a direct checksum value of
142
+ # the full object. Instead, it's a calculation based on the checksum
143
143
  # values of each individual part. For more information about how
144
144
  # checksums are calculated with multipart uploads, see [ Checking object
145
145
  # integrity][1] in the *Amazon S3 User Guide*.
@@ -181,8 +181,8 @@ module Aws::S3
181
181
  data[:checksum_crc64nvme]
182
182
  end
183
183
 
184
- # The Base64 encoded, 160-bit `SHA1` digest of the object. This will
185
- # only be present if the object was uploaded with the object. When you
184
+ # The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum
185
+ # is only present if the checksum was uploaded with the object. When you
186
186
  # use the API operation on an object that was uploaded using multipart
187
187
  # uploads, this value may not be a direct checksum value of the full
188
188
  # object. Instead, it's a calculation based on the checksum values of
@@ -198,14 +198,14 @@ module Aws::S3
198
198
  data[:checksum_sha1]
199
199
  end
200
200
 
201
- # The Base64 encoded, 256-bit `SHA256` digest of the object. This will
202
- # only be present if the object was uploaded with the object. When you
203
- # use an API operation on an object that was uploaded using multipart
204
- # uploads, this value may not be a direct checksum value of the full
205
- # object. Instead, it's a calculation based on the checksum values of
206
- # each individual part. For more information about how checksums are
207
- # calculated with multipart uploads, see [ Checking object integrity][1]
208
- # in the *Amazon S3 User Guide*.
201
+ # The Base64 encoded, 256-bit `SHA256` digest of the object. This
202
+ # checksum is only present if the checksum was uploaded with the object.
203
+ # When you use an API operation on an object that was uploaded using
204
+ # multipart uploads, this value may not be a direct checksum value of
205
+ # the full object. Instead, it's a calculation based on the checksum
206
+ # values of each individual part. For more information about how
207
+ # checksums are calculated with multipart uploads, see [ Checking object
208
+ # integrity][1] in the *Amazon S3 User Guide*.
209
209
  #
210
210
  #
211
211
  #
@@ -757,13 +757,15 @@ module Aws::S3
757
757
  # grant_read: "GrantRead",
758
758
  # grant_read_acp: "GrantReadACP",
759
759
  # grant_write_acp: "GrantWriteACP",
760
+ # if_match: "IfMatch",
761
+ # if_none_match: "IfNoneMatch",
760
762
  # metadata: {
761
763
  # "MetadataKey" => "MetadataValue",
762
764
  # },
763
765
  # metadata_directive: "COPY", # accepts COPY, REPLACE
764
766
  # tagging_directive: "COPY", # accepts COPY, REPLACE
765
767
  # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
766
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
768
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
767
769
  # website_redirect_location: "WebsiteRedirectLocation",
768
770
  # sse_customer_algorithm: "SSECustomerAlgorithm",
769
771
  # sse_customer_key: "SSECustomerKey",
@@ -1013,6 +1015,35 @@ module Aws::S3
1013
1015
  # * This functionality is not supported for Amazon S3 on Outposts.
1014
1016
  #
1015
1017
  # </note>
1018
+ # @option options [String] :if_match
1019
+ # Copies the object if the entity tag (ETag) of the destination object
1020
+ # matches the specified tag. If the ETag values do not match, the
1021
+ # operation returns a `412 Precondition Failed` error. If a concurrent
1022
+ # operation occurs during the upload S3 returns a `409
1023
+ # ConditionalRequestConflict` response. On a 409 failure you should
1024
+ # fetch the object's ETag and retry the upload.
1025
+ #
1026
+ # Expects the ETag value as a string.
1027
+ #
1028
+ # For more information about conditional requests, see [RFC 7232][1].
1029
+ #
1030
+ #
1031
+ #
1032
+ # [1]: https://tools.ietf.org/html/rfc7232
1033
+ # @option options [String] :if_none_match
1034
+ # Copies the object only if the object key name at the destination does
1035
+ # not already exist in the bucket specified. Otherwise, Amazon S3
1036
+ # returns a `412 Precondition Failed` error. If a concurrent operation
1037
+ # occurs during the upload S3 returns a `409 ConditionalRequestConflict`
1038
+ # response. On a 409 failure you should retry the upload.
1039
+ #
1040
+ # Expects the '*' (asterisk) character.
1041
+ #
1042
+ # For more information about conditional requests, see [RFC 7232][1].
1043
+ #
1044
+ #
1045
+ #
1046
+ # [1]: https://tools.ietf.org/html/rfc7232
1016
1047
  # @option options [Hash<String,String>] :metadata
1017
1048
  # A map of metadata to store with the object in S3.
1018
1049
  # @option options [String] :metadata_directive
@@ -1374,10 +1405,10 @@ module Aws::S3
1374
1405
  # Confirms that the requester knows that they will be charged for the
1375
1406
  # request. Bucket owners need not specify this parameter in their
1376
1407
  # requests. If either the source or destination S3 bucket has Requester
1377
- # Pays enabled, the requester will pay for corresponding charges to copy
1378
- # the object. For information about downloading objects from Requester
1379
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1380
- # in the *Amazon S3 User Guide*.
1408
+ # Pays enabled, the requester will pay for the corresponding charges.
1409
+ # For information about downloading objects from Requester Pays buckets,
1410
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
1411
+ # S3 User Guide*.
1381
1412
  #
1382
1413
  # <note markdown="1"> This functionality is not supported for directory buckets.
1383
1414
  #
@@ -1510,10 +1541,10 @@ module Aws::S3
1510
1541
  # Confirms that the requester knows that they will be charged for the
1511
1542
  # request. Bucket owners need not specify this parameter in their
1512
1543
  # requests. If either the source or destination S3 bucket has Requester
1513
- # Pays enabled, the requester will pay for corresponding charges to copy
1514
- # the object. For information about downloading objects from Requester
1515
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1516
- # in the *Amazon S3 User Guide*.
1544
+ # Pays enabled, the requester will pay for the corresponding charges.
1545
+ # For information about downloading objects from Requester Pays buckets,
1546
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
1547
+ # S3 User Guide*.
1517
1548
  #
1518
1549
  # <note markdown="1"> This functionality is not supported for directory buckets.
1519
1550
  #
@@ -1535,17 +1566,15 @@ module Aws::S3
1535
1566
  # you provide does not match the actual owner of the bucket, the request
1536
1567
  # fails with the HTTP status code `403 Forbidden` (access denied).
1537
1568
  # @option options [String] :if_match
1538
- # The `If-Match` header field makes the request method conditional on
1539
- # ETags. If the ETag value does not match, the operation returns a `412
1540
- # Precondition Failed` error. If the ETag matches or if the object
1541
- # doesn't exist, the operation will return a `204 Success (No Content)
1542
- # response`.
1543
- #
1544
- # For more information about conditional requests, see [RFC 7232][1].
1569
+ # Deletes the object if the ETag (entity tag) value provided during the
1570
+ # delete operation matches the ETag of the object in S3. If the ETag
1571
+ # values do not match, the operation returns a `412 Precondition Failed`
1572
+ # error.
1545
1573
  #
1546
- # <note markdown="1"> This functionality is only supported for directory buckets.
1574
+ # Expects the ETag value as a string. `If-Match` does accept a string
1575
+ # value of an '*' (asterisk) character to denote a match of any ETag.
1547
1576
  #
1548
- # </note>
1577
+ # For more information about conditional requests, see [RFC 7232][1].
1549
1578
  #
1550
1579
  #
1551
1580
  #
@@ -1807,10 +1836,10 @@ module Aws::S3
1807
1836
  # Confirms that the requester knows that they will be charged for the
1808
1837
  # request. Bucket owners need not specify this parameter in their
1809
1838
  # requests. If either the source or destination S3 bucket has Requester
1810
- # Pays enabled, the requester will pay for corresponding charges to copy
1811
- # the object. For information about downloading objects from Requester
1812
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1813
- # in the *Amazon S3 User Guide*.
1839
+ # Pays enabled, the requester will pay for the corresponding charges.
1840
+ # For information about downloading objects from Requester Pays buckets,
1841
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
1842
+ # S3 User Guide*.
1814
1843
  #
1815
1844
  # <note markdown="1"> This functionality is not supported for directory buckets.
1816
1845
  #
@@ -1860,7 +1889,7 @@ module Aws::S3
1860
1889
  # "MetadataKey" => "MetadataValue",
1861
1890
  # },
1862
1891
  # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
1863
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
1892
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
1864
1893
  # website_redirect_location: "WebsiteRedirectLocation",
1865
1894
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1866
1895
  # sse_customer_key: "SSECustomerKey",
@@ -2355,10 +2384,10 @@ module Aws::S3
2355
2384
  # Confirms that the requester knows that they will be charged for the
2356
2385
  # request. Bucket owners need not specify this parameter in their
2357
2386
  # requests. If either the source or destination S3 bucket has Requester
2358
- # Pays enabled, the requester will pay for corresponding charges to copy
2359
- # the object. For information about downloading objects from Requester
2360
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
2361
- # in the *Amazon S3 User Guide*.
2387
+ # Pays enabled, the requester will pay for the corresponding charges.
2388
+ # For information about downloading objects from Requester Pays buckets,
2389
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
2390
+ # S3 User Guide*.
2362
2391
  #
2363
2392
  # <note markdown="1"> This functionality is not supported for directory buckets.
2364
2393
  #
@@ -2461,7 +2490,7 @@ module Aws::S3
2461
2490
  # "MetadataKey" => "MetadataValue",
2462
2491
  # },
2463
2492
  # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
2464
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
2493
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
2465
2494
  # website_redirect_location: "WebsiteRedirectLocation",
2466
2495
  # sse_customer_algorithm: "SSECustomerAlgorithm",
2467
2496
  # sse_customer_key: "SSECustomerKey",
@@ -2995,10 +3024,10 @@ module Aws::S3
2995
3024
  # Confirms that the requester knows that they will be charged for the
2996
3025
  # request. Bucket owners need not specify this parameter in their
2997
3026
  # requests. If either the source or destination S3 bucket has Requester
2998
- # Pays enabled, the requester will pay for corresponding charges to copy
2999
- # the object. For information about downloading objects from Requester
3000
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
3001
- # in the *Amazon S3 User Guide*.
3027
+ # Pays enabled, the requester will pay for the corresponding charges.
3028
+ # For information about downloading objects from Requester Pays buckets,
3029
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
3030
+ # S3 User Guide*.
3002
3031
  #
3003
3032
  # <note markdown="1"> This functionality is not supported for directory buckets.
3004
3033
  #
@@ -3136,7 +3165,7 @@ module Aws::S3
3136
3165
  # value: "MetadataValue",
3137
3166
  # },
3138
3167
  # ],
3139
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
3168
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
3140
3169
  # },
3141
3170
  # },
3142
3171
  # },
@@ -3153,10 +3182,10 @@ module Aws::S3
3153
3182
  # Confirms that the requester knows that they will be charged for the
3154
3183
  # request. Bucket owners need not specify this parameter in their
3155
3184
  # requests. If either the source or destination S3 bucket has Requester
3156
- # Pays enabled, the requester will pay for corresponding charges to copy
3157
- # the object. For information about downloading objects from Requester
3158
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
3159
- # in the *Amazon S3 User Guide*.
3185
+ # Pays enabled, the requester will pay for the corresponding charges.
3186
+ # For information about downloading objects from Requester Pays buckets,
3187
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
3188
+ # S3 User Guide*.
3160
3189
  #
3161
3190
  # <note markdown="1"> This functionality is not supported for directory buckets.
3162
3191
  #
@@ -3345,10 +3374,10 @@ module Aws::S3
3345
3374
  # Confirms that the requester knows that they will be charged for the
3346
3375
  # request. Bucket owners need not specify this parameter in their
3347
3376
  # requests. If either the source or destination S3 bucket has Requester
3348
- # Pays enabled, the requester will pay for corresponding charges to copy
3349
- # the object. For information about downloading objects from Requester
3350
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
3351
- # in the *Amazon S3 User Guide*.
3377
+ # Pays enabled, the requester will pay for the corresponding charges.
3378
+ # For information about downloading objects from Requester Pays buckets,
3379
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
3380
+ # S3 User Guide*.
3352
3381
  #
3353
3382
  # <note markdown="1"> This functionality is not supported for directory buckets.
3354
3383
  #
@@ -3537,10 +3566,10 @@ module Aws::S3
3537
3566
  # Confirms that the requester knows that they will be charged for the
3538
3567
  # request. Bucket owners need not specify this parameter in their
3539
3568
  # requests. If either the source or destination S3 bucket has Requester
3540
- # Pays enabled, the requester will pay for corresponding charges to copy
3541
- # the object. For information about downloading objects from Requester
3542
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
3543
- # in the *Amazon S3 User Guide*.
3569
+ # Pays enabled, the requester will pay for the corresponding charges.
3570
+ # For information about downloading objects from Requester Pays buckets,
3571
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
3572
+ # S3 User Guide*.
3544
3573
  #
3545
3574
  # <note markdown="1"> This functionality is not supported for directory buckets.
3546
3575
  #
@@ -42,7 +42,7 @@ module Aws::S3
42
42
  @object_key
43
43
  end
44
44
 
45
- # Container for the bucket owner's display name and ID.
45
+ # Container for the bucket owner's ID.
46
46
  # @return [Types::Owner]
47
47
  def owner
48
48
  data[:owner]
@@ -310,10 +310,10 @@ module Aws::S3
310
310
  # Confirms that the requester knows that they will be charged for the
311
311
  # request. Bucket owners need not specify this parameter in their
312
312
  # requests. If either the source or destination S3 bucket has Requester
313
- # Pays enabled, the requester will pay for corresponding charges to copy
314
- # the object. For information about downloading objects from Requester
315
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
316
- # in the *Amazon S3 User Guide*.
313
+ # Pays enabled, the requester will pay for the corresponding charges.
314
+ # For information about downloading objects from Requester Pays buckets,
315
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
316
+ # S3 User Guide*.
317
317
  #
318
318
  # <note markdown="1"> This functionality is not supported for directory buckets.
319
319
  #
@@ -354,13 +354,15 @@ module Aws::S3
354
354
  # grant_read: "GrantRead",
355
355
  # grant_read_acp: "GrantReadACP",
356
356
  # grant_write_acp: "GrantWriteACP",
357
+ # if_match: "IfMatch",
358
+ # if_none_match: "IfNoneMatch",
357
359
  # metadata: {
358
360
  # "MetadataKey" => "MetadataValue",
359
361
  # },
360
362
  # metadata_directive: "COPY", # accepts COPY, REPLACE
361
363
  # tagging_directive: "COPY", # accepts COPY, REPLACE
362
364
  # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
363
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
365
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
364
366
  # website_redirect_location: "WebsiteRedirectLocation",
365
367
  # sse_customer_algorithm: "SSECustomerAlgorithm",
366
368
  # sse_customer_key: "SSECustomerKey",
@@ -610,6 +612,35 @@ module Aws::S3
610
612
  # * This functionality is not supported for Amazon S3 on Outposts.
611
613
  #
612
614
  # </note>
615
+ # @option options [String] :if_match
616
+ # Copies the object if the entity tag (ETag) of the destination object
617
+ # matches the specified tag. If the ETag values do not match, the
618
+ # operation returns a `412 Precondition Failed` error. If a concurrent
619
+ # operation occurs during the upload S3 returns a `409
620
+ # ConditionalRequestConflict` response. On a 409 failure you should
621
+ # fetch the object's ETag and retry the upload.
622
+ #
623
+ # Expects the ETag value as a string.
624
+ #
625
+ # For more information about conditional requests, see [RFC 7232][1].
626
+ #
627
+ #
628
+ #
629
+ # [1]: https://tools.ietf.org/html/rfc7232
630
+ # @option options [String] :if_none_match
631
+ # Copies the object only if the object key name at the destination does
632
+ # not already exist in the bucket specified. Otherwise, Amazon S3
633
+ # returns a `412 Precondition Failed` error. If a concurrent operation
634
+ # occurs during the upload S3 returns a `409 ConditionalRequestConflict`
635
+ # response. On a 409 failure you should retry the upload.
636
+ #
637
+ # Expects the '*' (asterisk) character.
638
+ #
639
+ # For more information about conditional requests, see [RFC 7232][1].
640
+ #
641
+ #
642
+ #
643
+ # [1]: https://tools.ietf.org/html/rfc7232
613
644
  # @option options [Hash<String,String>] :metadata
614
645
  # A map of metadata to store with the object in S3.
615
646
  # @option options [String] :metadata_directive
@@ -971,10 +1002,10 @@ module Aws::S3
971
1002
  # Confirms that the requester knows that they will be charged for the
972
1003
  # request. Bucket owners need not specify this parameter in their
973
1004
  # requests. If either the source or destination S3 bucket has Requester
974
- # Pays enabled, the requester will pay for corresponding charges to copy
975
- # the object. For information about downloading objects from Requester
976
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
977
- # in the *Amazon S3 User Guide*.
1005
+ # Pays enabled, the requester will pay for the corresponding charges.
1006
+ # For information about downloading objects from Requester Pays buckets,
1007
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
1008
+ # S3 User Guide*.
978
1009
  #
979
1010
  # <note markdown="1"> This functionality is not supported for directory buckets.
980
1011
  #
@@ -1107,10 +1138,10 @@ module Aws::S3
1107
1138
  # Confirms that the requester knows that they will be charged for the
1108
1139
  # request. Bucket owners need not specify this parameter in their
1109
1140
  # requests. If either the source or destination S3 bucket has Requester
1110
- # Pays enabled, the requester will pay for corresponding charges to copy
1111
- # the object. For information about downloading objects from Requester
1112
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1113
- # in the *Amazon S3 User Guide*.
1141
+ # Pays enabled, the requester will pay for the corresponding charges.
1142
+ # For information about downloading objects from Requester Pays buckets,
1143
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
1144
+ # S3 User Guide*.
1114
1145
  #
1115
1146
  # <note markdown="1"> This functionality is not supported for directory buckets.
1116
1147
  #
@@ -1132,17 +1163,15 @@ module Aws::S3
1132
1163
  # you provide does not match the actual owner of the bucket, the request
1133
1164
  # fails with the HTTP status code `403 Forbidden` (access denied).
1134
1165
  # @option options [String] :if_match
1135
- # The `If-Match` header field makes the request method conditional on
1136
- # ETags. If the ETag value does not match, the operation returns a `412
1137
- # Precondition Failed` error. If the ETag matches or if the object
1138
- # doesn't exist, the operation will return a `204 Success (No Content)
1139
- # response`.
1140
- #
1141
- # For more information about conditional requests, see [RFC 7232][1].
1166
+ # Deletes the object if the ETag (entity tag) value provided during the
1167
+ # delete operation matches the ETag of the object in S3. If the ETag
1168
+ # values do not match, the operation returns a `412 Precondition Failed`
1169
+ # error.
1142
1170
  #
1143
- # <note markdown="1"> This functionality is only supported for directory buckets.
1171
+ # Expects the ETag value as a string. `If-Match` does accept a string
1172
+ # value of an '*' (asterisk) character to denote a match of any ETag.
1144
1173
  #
1145
- # </note>
1174
+ # For more information about conditional requests, see [RFC 7232][1].
1146
1175
  #
1147
1176
  #
1148
1177
  #
@@ -1404,10 +1433,10 @@ module Aws::S3
1404
1433
  # Confirms that the requester knows that they will be charged for the
1405
1434
  # request. Bucket owners need not specify this parameter in their
1406
1435
  # requests. If either the source or destination S3 bucket has Requester
1407
- # Pays enabled, the requester will pay for corresponding charges to copy
1408
- # the object. For information about downloading objects from Requester
1409
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1410
- # in the *Amazon S3 User Guide*.
1436
+ # Pays enabled, the requester will pay for the corresponding charges.
1437
+ # For information about downloading objects from Requester Pays buckets,
1438
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
1439
+ # S3 User Guide*.
1411
1440
  #
1412
1441
  # <note markdown="1"> This functionality is not supported for directory buckets.
1413
1442
  #
@@ -1457,7 +1486,7 @@ module Aws::S3
1457
1486
  # "MetadataKey" => "MetadataValue",
1458
1487
  # },
1459
1488
  # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
1460
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
1489
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
1461
1490
  # website_redirect_location: "WebsiteRedirectLocation",
1462
1491
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1463
1492
  # sse_customer_key: "SSECustomerKey",
@@ -1952,10 +1981,10 @@ module Aws::S3
1952
1981
  # Confirms that the requester knows that they will be charged for the
1953
1982
  # request. Bucket owners need not specify this parameter in their
1954
1983
  # requests. If either the source or destination S3 bucket has Requester
1955
- # Pays enabled, the requester will pay for corresponding charges to copy
1956
- # the object. For information about downloading objects from Requester
1957
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1958
- # in the *Amazon S3 User Guide*.
1984
+ # Pays enabled, the requester will pay for the corresponding charges.
1985
+ # For information about downloading objects from Requester Pays buckets,
1986
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
1987
+ # S3 User Guide*.
1959
1988
  #
1960
1989
  # <note markdown="1"> This functionality is not supported for directory buckets.
1961
1990
  #
@@ -2058,7 +2087,7 @@ module Aws::S3
2058
2087
  # "MetadataKey" => "MetadataValue",
2059
2088
  # },
2060
2089
  # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
2061
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
2090
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
2062
2091
  # website_redirect_location: "WebsiteRedirectLocation",
2063
2092
  # sse_customer_algorithm: "SSECustomerAlgorithm",
2064
2093
  # sse_customer_key: "SSECustomerKey",
@@ -2592,10 +2621,10 @@ module Aws::S3
2592
2621
  # Confirms that the requester knows that they will be charged for the
2593
2622
  # request. Bucket owners need not specify this parameter in their
2594
2623
  # requests. If either the source or destination S3 bucket has Requester
2595
- # Pays enabled, the requester will pay for corresponding charges to copy
2596
- # the object. For information about downloading objects from Requester
2597
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
2598
- # in the *Amazon S3 User Guide*.
2624
+ # Pays enabled, the requester will pay for the corresponding charges.
2625
+ # For information about downloading objects from Requester Pays buckets,
2626
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
2627
+ # S3 User Guide*.
2599
2628
  #
2600
2629
  # <note markdown="1"> This functionality is not supported for directory buckets.
2601
2630
  #
@@ -2733,7 +2762,7 @@ module Aws::S3
2733
2762
  # value: "MetadataValue",
2734
2763
  # },
2735
2764
  # ],
2736
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
2765
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
2737
2766
  # },
2738
2767
  # },
2739
2768
  # },
@@ -2750,10 +2779,10 @@ module Aws::S3
2750
2779
  # Confirms that the requester knows that they will be charged for the
2751
2780
  # request. Bucket owners need not specify this parameter in their
2752
2781
  # requests. If either the source or destination S3 bucket has Requester
2753
- # Pays enabled, the requester will pay for corresponding charges to copy
2754
- # the object. For information about downloading objects from Requester
2755
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
2756
- # in the *Amazon S3 User Guide*.
2782
+ # Pays enabled, the requester will pay for the corresponding charges.
2783
+ # For information about downloading objects from Requester Pays buckets,
2784
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
2785
+ # S3 User Guide*.
2757
2786
  #
2758
2787
  # <note markdown="1"> This functionality is not supported for directory buckets.
2759
2788
  #
@@ -2944,10 +2973,10 @@ module Aws::S3
2944
2973
  # Confirms that the requester knows that they will be charged for the
2945
2974
  # request. Bucket owners need not specify this parameter in their
2946
2975
  # requests. If either the source or destination S3 bucket has Requester
2947
- # Pays enabled, the requester will pay for corresponding charges to copy
2948
- # the object. For information about downloading objects from Requester
2949
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
2950
- # in the *Amazon S3 User Guide*.
2976
+ # Pays enabled, the requester will pay for the corresponding charges.
2977
+ # For information about downloading objects from Requester Pays buckets,
2978
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
2979
+ # S3 User Guide*.
2951
2980
  #
2952
2981
  # <note markdown="1"> This functionality is not supported for directory buckets.
2953
2982
  #
@@ -287,10 +287,10 @@ module Aws::S3
287
287
  # Confirms that the requester knows that they will be charged for the
288
288
  # request. Bucket owners need not specify this parameter in their
289
289
  # requests. If either the source or destination S3 bucket has Requester
290
- # Pays enabled, the requester will pay for corresponding charges to copy
291
- # the object. For information about downloading objects from Requester
292
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
293
- # in the *Amazon S3 User Guide*.
290
+ # Pays enabled, the requester will pay for the corresponding charges.
291
+ # For information about downloading objects from Requester Pays buckets,
292
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
293
+ # S3 User Guide*.
294
294
  #
295
295
  # <note markdown="1"> This functionality is not supported for directory buckets.
296
296
  #
@@ -312,17 +312,15 @@ module Aws::S3
312
312
  # you provide does not match the actual owner of the bucket, the request
313
313
  # fails with the HTTP status code `403 Forbidden` (access denied).
314
314
  # @option options [String] :if_match
315
- # The `If-Match` header field makes the request method conditional on
316
- # ETags. If the ETag value does not match, the operation returns a `412
317
- # Precondition Failed` error. If the ETag matches or if the object
318
- # doesn't exist, the operation will return a `204 Success (No Content)
319
- # response`.
320
- #
321
- # For more information about conditional requests, see [RFC 7232][1].
315
+ # Deletes the object if the ETag (entity tag) value provided during the
316
+ # delete operation matches the ETag of the object in S3. If the ETag
317
+ # values do not match, the operation returns a `412 Precondition Failed`
318
+ # error.
322
319
  #
323
- # <note markdown="1"> This functionality is only supported for directory buckets.
320
+ # Expects the ETag value as a string. `If-Match` does accept a string
321
+ # value of an '*' (asterisk) character to denote a match of any ETag.
324
322
  #
325
- # </note>
323
+ # For more information about conditional requests, see [RFC 7232][1].
326
324
  #
327
325
  #
328
326
  #
@@ -555,10 +553,10 @@ module Aws::S3
555
553
  # Confirms that the requester knows that they will be charged for the
556
554
  # request. Bucket owners need not specify this parameter in their
557
555
  # requests. If either the source or destination S3 bucket has Requester
558
- # Pays enabled, the requester will pay for corresponding charges to copy
559
- # the object. For information about downloading objects from Requester
560
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
561
- # in the *Amazon S3 User Guide*.
556
+ # Pays enabled, the requester will pay for the corresponding charges.
557
+ # For information about downloading objects from Requester Pays buckets,
558
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
559
+ # S3 User Guide*.
562
560
  #
563
561
  # <note markdown="1"> This functionality is not supported for directory buckets.
564
562
  #
@@ -732,10 +730,10 @@ module Aws::S3
732
730
  # Confirms that the requester knows that they will be charged for the
733
731
  # request. Bucket owners need not specify this parameter in their
734
732
  # requests. If either the source or destination S3 bucket has Requester
735
- # Pays enabled, the requester will pay for corresponding charges to copy
736
- # the object. For information about downloading objects from Requester
737
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
738
- # in the *Amazon S3 User Guide*.
733
+ # Pays enabled, the requester will pay for the corresponding charges.
734
+ # For information about downloading objects from Requester Pays buckets,
735
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
736
+ # S3 User Guide*.
739
737
  #
740
738
  # <note markdown="1"> This functionality is not supported for directory buckets.
741
739
  #
@@ -880,10 +878,10 @@ module Aws::S3
880
878
  # Confirms that the requester knows that they will be charged for the
881
879
  # request. Bucket owners need not specify this parameter in their
882
880
  # requests. If either the source or destination S3 bucket has Requester
883
- # Pays enabled, the requester will pay for corresponding charges to copy
884
- # the object. For information about downloading objects from Requester
885
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
886
- # in the *Amazon S3 User Guide*.
881
+ # Pays enabled, the requester will pay for the corresponding charges.
882
+ # For information about downloading objects from Requester Pays buckets,
883
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
884
+ # S3 User Guide*.
887
885
  #
888
886
  # <note markdown="1"> This functionality is not supported for directory buckets.
889
887
  #
@@ -18,12 +18,25 @@ module Aws
18
18
  end
19
19
  end
20
20
 
21
+ # Handler to disable trailer checksums for S3-compatible services
22
+ # that don't support STREAMING-UNSIGNED-PAYLOAD-TRAILER
23
+ # See: https://github.com/aws/aws-sdk-ruby/issues/3338
24
+ class SkipTrailerChecksumsHandler < Seahorse::Client::Handler
25
+ def call(context)
26
+ context[:skip_trailer_checksums] = true if custom_endpoint?(context.config)
27
+ @handler.call(context)
28
+ end
29
+
30
+ private
31
+
32
+ def custom_endpoint?(config)
33
+ !config.regional_endpoint || !config.endpoint_provider.instance_of?(Aws::S3::EndpointProvider)
34
+ end
35
+ end
36
+
21
37
  def add_handlers(handlers, _config)
22
- handlers.add(
23
- SkipWholeMultipartGetChecksumsHandler,
24
- step: :initialize,
25
- operations: [:get_object]
26
- )
38
+ handlers.add(SkipWholeMultipartGetChecksumsHandler, step: :initialize, operations: [:get_object])
39
+ handlers.add(SkipTrailerChecksumsHandler, step: :build, priority: 16, operations: %i[put_object upload_part])
27
40
  end
28
41
  end
29
42
  end
@@ -25,7 +25,7 @@ The endpoint provider used to resolve endpoints. Any object that responds to
25
25
 
26
26
  option(
27
27
  :disable_s3_express_session_auth,
28
- doc_type: 'Boolean',
28
+ doc_type: 'boolean',
29
29
  docstring: <<~DOCS) do |cfg|
30
30
  Parameter to indicate whether S3Express session auth should be disabled
31
31
  DOCS