aws-sdk-s3 1.182.0 → 1.198.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 (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +106 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +46 -6
  5. data/lib/aws-sdk-s3/client.rb +1693 -591
  6. data/lib/aws-sdk-s3/client_api.rb +396 -162
  7. data/lib/aws-sdk-s3/customizations/object.rb +57 -76
  8. data/lib/aws-sdk-s3/customizations.rb +2 -1
  9. data/lib/aws-sdk-s3/endpoint_provider.rb +234 -129
  10. data/lib/aws-sdk-s3/endpoints.rb +84 -0
  11. data/lib/aws-sdk-s3/errors.rb +11 -0
  12. data/lib/aws-sdk-s3/file_downloader.rb +65 -82
  13. data/lib/aws-sdk-s3/file_uploader.rb +3 -5
  14. data/lib/aws-sdk-s3/legacy_signer.rb +2 -1
  15. data/lib/aws-sdk-s3/multipart_download_error.rb +8 -0
  16. data/lib/aws-sdk-s3/multipart_file_uploader.rb +34 -65
  17. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +80 -88
  18. data/lib/aws-sdk-s3/multipart_upload.rb +4 -2
  19. data/lib/aws-sdk-s3/multipart_upload_error.rb +3 -4
  20. data/lib/aws-sdk-s3/object.rb +85 -26
  21. data/lib/aws-sdk-s3/object_acl.rb +7 -1
  22. data/lib/aws-sdk-s3/object_multipart_copier.rb +2 -1
  23. data/lib/aws-sdk-s3/object_summary.rb +54 -24
  24. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +5 -7
  25. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -1
  26. data/lib/aws-sdk-s3/resource.rb +6 -0
  27. data/lib/aws-sdk-s3/transfer_manager.rb +246 -0
  28. data/lib/aws-sdk-s3/types.rb +1627 -295
  29. data/lib/aws-sdk-s3.rb +1 -1
  30. data/sig/bucket.rbs +12 -3
  31. data/sig/client.rbs +143 -31
  32. data/sig/errors.rbs +2 -0
  33. data/sig/multipart_upload.rbs +1 -1
  34. data/sig/object.rbs +13 -10
  35. data/sig/object_summary.rbs +9 -9
  36. data/sig/resource.rbs +8 -1
  37. data/sig/types.rbs +183 -29
  38. metadata +8 -9
@@ -97,9 +97,10 @@ module Aws::S3
97
97
  # For more information about archiving objects, see [Transitioning
98
98
  # Objects: General Considerations][2].
99
99
  #
100
- # <note markdown="1"> This functionality is not supported for directory buckets. Only the S3
101
- # Express One Zone storage class is supported by directory buckets to
102
- # store objects.
100
+ # <note markdown="1"> This functionality is not supported for directory buckets. Directory
101
+ # buckets only support `EXPRESS_ONEZONE` (the S3 Express One Zone
102
+ # storage class) in Availability Zones and `ONEZONE_IA` (the S3 One
103
+ # Zone-Infrequent Access storage class) in Dedicated Local Zones.
103
104
  #
104
105
  # </note>
105
106
  #
@@ -323,7 +324,12 @@ module Aws::S3
323
324
  end
324
325
 
325
326
  # The server-side encryption algorithm used when you store this object
326
- # in Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
327
+ # in Amazon S3 or Amazon FSx.
328
+ #
329
+ # <note markdown="1"> When accessing data stored in Amazon FSx file systems using S3 access
330
+ # points, the only valid server side encryption option is `aws:fsx`.
331
+ #
332
+ # </note>
327
333
  # @return [String]
328
334
  def server_side_encryption
329
335
  data[:server_side_encryption]
@@ -380,8 +386,10 @@ module Aws::S3
380
386
  #
381
387
  # For more information, see [Storage Classes][1].
382
388
  #
383
- # <note markdown="1"> <b>Directory buckets </b> - Only the S3 Express One Zone storage class
384
- # is supported by directory buckets to store objects.
389
+ # <note markdown="1"> <b>Directory buckets </b> - Directory buckets only support
390
+ # `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in
391
+ # Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent Access
392
+ # storage class) in Dedicated Local Zones.
385
393
  #
386
394
  # </note>
387
395
  #
@@ -394,11 +402,17 @@ module Aws::S3
394
402
  end
395
403
 
396
404
  # If present, indicates that the requester was successfully charged for
397
- # the request.
405
+ # the request. For more information, see [Using Requester Pays buckets
406
+ # for storage transfers and usage][1] in the *Amazon Simple Storage
407
+ # Service user guide*.
398
408
  #
399
409
  # <note markdown="1"> This functionality is not supported for directory buckets.
400
410
  #
401
411
  # </note>
412
+ #
413
+ #
414
+ #
415
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html
402
416
  # @return [String]
403
417
  def request_charged
404
418
  data[:request_charged]
@@ -461,6 +475,24 @@ module Aws::S3
461
475
  data[:parts_count]
462
476
  end
463
477
 
478
+ # The number of tags, if any, on the object, when you have the relevant
479
+ # permission to read object tags.
480
+ #
481
+ # You can use [GetObjectTagging][1] to retrieve the tag set associated
482
+ # with an object.
483
+ #
484
+ # <note markdown="1"> This functionality is not supported for directory buckets.
485
+ #
486
+ # </note>
487
+ #
488
+ #
489
+ #
490
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html
491
+ # @return [Integer]
492
+ def tag_count
493
+ data[:tag_count]
494
+ end
495
+
464
496
  # The Object Lock mode, if any, that's in effect for this object. This
465
497
  # header is only returned if the requester has the
466
498
  # `s3:GetObjectRetention` permission. For more information about S3
@@ -730,8 +762,8 @@ module Aws::S3
730
762
  # },
731
763
  # metadata_directive: "COPY", # accepts COPY, REPLACE
732
764
  # tagging_directive: "COPY", # accepts COPY, REPLACE
733
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
734
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
765
+ # 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
735
767
  # website_redirect_location: "WebsiteRedirectLocation",
736
768
  # sse_customer_algorithm: "SSECustomerAlgorithm",
737
769
  # sse_customer_key: "SSECustomerKey",
@@ -1121,6 +1153,14 @@ module Aws::S3
1121
1153
  # key is the same customer managed key that you specified for the
1122
1154
  # directory bucket's default encryption configuration.
1123
1155
  #
1156
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
1157
+ # in Amazon FSx file systems using S3 access points, the only valid
1158
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
1159
+ # systems have encryption configured by default and are encrypted at
1160
+ # rest. Data is automatically encrypted before being written to the
1161
+ # file system, and automatically decrypted as it is read. These
1162
+ # processes are handled transparently by Amazon FSx.
1163
+ #
1124
1164
  #
1125
1165
  #
1126
1166
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
@@ -1135,10 +1175,12 @@ module Aws::S3
1135
1175
  # availability. Depending on performance needs, you can specify a
1136
1176
  # different Storage Class.
1137
1177
  #
1138
- # <note markdown="1"> * <b>Directory buckets </b> - For directory buckets, only the S3
1139
- # Express One Zone storage class is supported to store newly created
1140
- # objects. Unsupported storage class values won't write a destination
1141
- # object and will respond with the HTTP status code `400 Bad Request`.
1178
+ # <note markdown="1"> * <b>Directory buckets </b> - Directory buckets only support
1179
+ # `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in
1180
+ # Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent
1181
+ # Access storage class) in Dedicated Local Zones. Unsupported storage
1182
+ # class values won't write a destination object and will respond with
1183
+ # the HTTP status code `400 Bad Request`.
1142
1184
  #
1143
1185
  # * <b>Amazon S3 on Outposts </b> - S3 on Outposts only uses the
1144
1186
  # `OUTPOSTS` Storage Class.
@@ -1817,8 +1859,8 @@ module Aws::S3
1817
1859
  # metadata: {
1818
1860
  # "MetadataKey" => "MetadataValue",
1819
1861
  # },
1820
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
1821
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
1862
+ # 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
1822
1864
  # website_redirect_location: "WebsiteRedirectLocation",
1823
1865
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1824
1866
  # sse_customer_key: "SSECustomerKey",
@@ -2135,7 +2177,7 @@ module Aws::S3
2135
2177
  # A map of metadata to store with the object in S3.
2136
2178
  # @option options [String] :server_side_encryption
2137
2179
  # The server-side encryption algorithm used when you store this object
2138
- # in Amazon S3 (for example, `AES256`, `aws:kms`).
2180
+ # in Amazon S3 or Amazon FSx.
2139
2181
  #
2140
2182
  # * <b>Directory buckets </b> - For directory buckets, there are only
2141
2183
  # two supported options for server-side encryption: server-side
@@ -2177,6 +2219,14 @@ module Aws::S3
2177
2219
  #
2178
2220
  # </note>
2179
2221
  #
2222
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
2223
+ # in Amazon FSx file systems using S3 access points, the only valid
2224
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
2225
+ # systems have encryption configured by default and are encrypted at
2226
+ # rest. Data is automatically encrypted before being written to the
2227
+ # file system, and automatically decrypted as it is read. These
2228
+ # processes are handled transparently by Amazon FSx.
2229
+ #
2180
2230
  #
2181
2231
  #
2182
2232
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
@@ -2190,8 +2240,9 @@ module Aws::S3
2190
2240
  # a different Storage Class. For more information, see [Storage
2191
2241
  # Classes][1] in the *Amazon S3 User Guide*.
2192
2242
  #
2193
- # <note markdown="1"> * For directory buckets, only the S3 Express One Zone storage class is
2194
- # supported to store newly created objects.
2243
+ # <note markdown="1"> * Directory buckets only support `EXPRESS_ONEZONE` (the S3 Express One
2244
+ # Zone storage class) in Availability Zones and `ONEZONE_IA` (the S3
2245
+ # One Zone-Infrequent Access storage class) in Dedicated Local Zones.
2195
2246
  #
2196
2247
  # * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.
2197
2248
  #
@@ -2409,8 +2460,8 @@ module Aws::S3
2409
2460
  # metadata: {
2410
2461
  # "MetadataKey" => "MetadataValue",
2411
2462
  # },
2412
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
2413
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
2463
+ # 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
2414
2465
  # website_redirect_location: "WebsiteRedirectLocation",
2415
2466
  # sse_customer_algorithm: "SSECustomerAlgorithm",
2416
2467
  # sse_customer_key: "SSECustomerKey",
@@ -2720,8 +2771,7 @@ module Aws::S3
2720
2771
  # A map of metadata to store with the object in S3.
2721
2772
  # @option options [String] :server_side_encryption
2722
2773
  # The server-side encryption algorithm that was used when you store this
2723
- # object in Amazon S3 (for example, `AES256`, `aws:kms`,
2724
- # `aws:kms:dsse`).
2774
+ # object in Amazon S3 or Amazon FSx.
2725
2775
  #
2726
2776
  # * <b>General purpose buckets </b> - You have four mutually exclusive
2727
2777
  # options to protect data using server-side encryption in Amazon S3,
@@ -2775,6 +2825,14 @@ module Aws::S3
2775
2825
  #
2776
2826
  # </note>
2777
2827
  #
2828
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
2829
+ # in Amazon FSx file systems using S3 access points, the only valid
2830
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
2831
+ # systems have encryption configured by default and are encrypted at
2832
+ # rest. Data is automatically encrypted before being written to the
2833
+ # file system, and automatically decrypted as it is read. These
2834
+ # processes are handled transparently by Amazon FSx.
2835
+ #
2778
2836
  #
2779
2837
  #
2780
2838
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
@@ -2789,8 +2847,9 @@ module Aws::S3
2789
2847
  # a different Storage Class. For more information, see [Storage
2790
2848
  # Classes][1] in the *Amazon S3 User Guide*.
2791
2849
  #
2792
- # <note markdown="1"> * For directory buckets, only the S3 Express One Zone storage class is
2793
- # supported to store newly created objects.
2850
+ # <note markdown="1"> * Directory buckets only support `EXPRESS_ONEZONE` (the S3 Express One
2851
+ # Zone storage class) in Availability Zones and `ONEZONE_IA` (the S3
2852
+ # One Zone-Infrequent Access storage class) in Dedicated Local Zones.
2794
2853
  #
2795
2854
  # * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.
2796
2855
  #
@@ -3046,7 +3105,7 @@ module Aws::S3
3046
3105
  # bucket_name: "BucketName", # required
3047
3106
  # prefix: "LocationPrefix", # required
3048
3107
  # encryption: {
3049
- # encryption_type: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse
3108
+ # encryption_type: "AES256", # required, accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
3050
3109
  # kms_key_id: "SSEKMSKeyId",
3051
3110
  # kms_context: "KMSContext",
3052
3111
  # },
@@ -3077,7 +3136,7 @@ module Aws::S3
3077
3136
  # value: "MetadataValue",
3078
3137
  # },
3079
3138
  # ],
3080
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
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
3081
3140
  # },
3082
3141
  # },
3083
3142
  # },
@@ -55,11 +55,17 @@ module Aws::S3
55
55
  end
56
56
 
57
57
  # If present, indicates that the requester was successfully charged for
58
- # the request.
58
+ # the request. For more information, see [Using Requester Pays buckets
59
+ # for storage transfers and usage][1] in the *Amazon Simple Storage
60
+ # Service user guide*.
59
61
  #
60
62
  # <note markdown="1"> This functionality is not supported for directory buckets.
61
63
  #
62
64
  # </note>
65
+ #
66
+ #
67
+ #
68
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html
63
69
  # @return [String]
64
70
  def request_charged
65
71
  data[:request_charged]
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'thread'
4
- require 'cgi'
4
+ require "cgi/escape"
5
+ require "cgi/util" if RUBY_VERSION < "3.5"
5
6
 
6
7
  module Aws
7
8
  module S3
@@ -104,8 +104,10 @@ module Aws::S3
104
104
 
105
105
  # The class of storage used to store the object.
106
106
  #
107
- # <note markdown="1"> **Directory buckets** - Only the S3 Express One Zone storage class is
108
- # supported by directory buckets to store objects.
107
+ # <note markdown="1"> **Directory buckets** - Directory buckets only support
108
+ # `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in
109
+ # Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent Access
110
+ # storage class) in Dedicated Local Zones.
109
111
  #
110
112
  # </note>
111
113
  # @return [String]
@@ -130,9 +132,10 @@ module Aws::S3
130
132
  # archived objects, see [ Working with archived objects][1] in the
131
133
  # *Amazon S3 User Guide*.
132
134
  #
133
- # <note markdown="1"> This functionality is not supported for directory buckets. Only the S3
134
- # Express One Zone storage class is supported by directory buckets to
135
- # store objects.
135
+ # <note markdown="1"> This functionality is not supported for directory buckets. Directory
136
+ # buckets only support `EXPRESS_ONEZONE` (the S3 Express One Zone
137
+ # storage class) in Availability Zones and `ONEZONE_IA` (the S3 One
138
+ # Zone-Infrequent Access storage class) in Dedicated Local Zones.
136
139
  #
137
140
  # </note>
138
141
  #
@@ -356,8 +359,8 @@ module Aws::S3
356
359
  # },
357
360
  # metadata_directive: "COPY", # accepts COPY, REPLACE
358
361
  # tagging_directive: "COPY", # accepts COPY, REPLACE
359
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
360
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
362
+ # 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
361
364
  # website_redirect_location: "WebsiteRedirectLocation",
362
365
  # sse_customer_algorithm: "SSECustomerAlgorithm",
363
366
  # sse_customer_key: "SSECustomerKey",
@@ -747,6 +750,14 @@ module Aws::S3
747
750
  # key is the same customer managed key that you specified for the
748
751
  # directory bucket's default encryption configuration.
749
752
  #
753
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
754
+ # in Amazon FSx file systems using S3 access points, the only valid
755
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
756
+ # systems have encryption configured by default and are encrypted at
757
+ # rest. Data is automatically encrypted before being written to the
758
+ # file system, and automatically decrypted as it is read. These
759
+ # processes are handled transparently by Amazon FSx.
760
+ #
750
761
  #
751
762
  #
752
763
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
@@ -761,10 +772,12 @@ module Aws::S3
761
772
  # availability. Depending on performance needs, you can specify a
762
773
  # different Storage Class.
763
774
  #
764
- # <note markdown="1"> * <b>Directory buckets </b> - For directory buckets, only the S3
765
- # Express One Zone storage class is supported to store newly created
766
- # objects. Unsupported storage class values won't write a destination
767
- # object and will respond with the HTTP status code `400 Bad Request`.
775
+ # <note markdown="1"> * <b>Directory buckets </b> - Directory buckets only support
776
+ # `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in
777
+ # Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent
778
+ # Access storage class) in Dedicated Local Zones. Unsupported storage
779
+ # class values won't write a destination object and will respond with
780
+ # the HTTP status code `400 Bad Request`.
768
781
  #
769
782
  # * <b>Amazon S3 on Outposts </b> - S3 on Outposts only uses the
770
783
  # `OUTPOSTS` Storage Class.
@@ -1443,8 +1456,8 @@ module Aws::S3
1443
1456
  # metadata: {
1444
1457
  # "MetadataKey" => "MetadataValue",
1445
1458
  # },
1446
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
1447
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
1459
+ # 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
1448
1461
  # website_redirect_location: "WebsiteRedirectLocation",
1449
1462
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1450
1463
  # sse_customer_key: "SSECustomerKey",
@@ -1761,7 +1774,7 @@ module Aws::S3
1761
1774
  # A map of metadata to store with the object in S3.
1762
1775
  # @option options [String] :server_side_encryption
1763
1776
  # The server-side encryption algorithm used when you store this object
1764
- # in Amazon S3 (for example, `AES256`, `aws:kms`).
1777
+ # in Amazon S3 or Amazon FSx.
1765
1778
  #
1766
1779
  # * <b>Directory buckets </b> - For directory buckets, there are only
1767
1780
  # two supported options for server-side encryption: server-side
@@ -1803,6 +1816,14 @@ module Aws::S3
1803
1816
  #
1804
1817
  # </note>
1805
1818
  #
1819
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
1820
+ # in Amazon FSx file systems using S3 access points, the only valid
1821
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
1822
+ # systems have encryption configured by default and are encrypted at
1823
+ # rest. Data is automatically encrypted before being written to the
1824
+ # file system, and automatically decrypted as it is read. These
1825
+ # processes are handled transparently by Amazon FSx.
1826
+ #
1806
1827
  #
1807
1828
  #
1808
1829
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
@@ -1816,8 +1837,9 @@ module Aws::S3
1816
1837
  # a different Storage Class. For more information, see [Storage
1817
1838
  # Classes][1] in the *Amazon S3 User Guide*.
1818
1839
  #
1819
- # <note markdown="1"> * For directory buckets, only the S3 Express One Zone storage class is
1820
- # supported to store newly created objects.
1840
+ # <note markdown="1"> * Directory buckets only support `EXPRESS_ONEZONE` (the S3 Express One
1841
+ # Zone storage class) in Availability Zones and `ONEZONE_IA` (the S3
1842
+ # One Zone-Infrequent Access storage class) in Dedicated Local Zones.
1821
1843
  #
1822
1844
  # * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.
1823
1845
  #
@@ -2035,8 +2057,8 @@ module Aws::S3
2035
2057
  # metadata: {
2036
2058
  # "MetadataKey" => "MetadataValue",
2037
2059
  # },
2038
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
2039
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
2060
+ # 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
2040
2062
  # website_redirect_location: "WebsiteRedirectLocation",
2041
2063
  # sse_customer_algorithm: "SSECustomerAlgorithm",
2042
2064
  # sse_customer_key: "SSECustomerKey",
@@ -2346,8 +2368,7 @@ module Aws::S3
2346
2368
  # A map of metadata to store with the object in S3.
2347
2369
  # @option options [String] :server_side_encryption
2348
2370
  # The server-side encryption algorithm that was used when you store this
2349
- # object in Amazon S3 (for example, `AES256`, `aws:kms`,
2350
- # `aws:kms:dsse`).
2371
+ # object in Amazon S3 or Amazon FSx.
2351
2372
  #
2352
2373
  # * <b>General purpose buckets </b> - You have four mutually exclusive
2353
2374
  # options to protect data using server-side encryption in Amazon S3,
@@ -2401,6 +2422,14 @@ module Aws::S3
2401
2422
  #
2402
2423
  # </note>
2403
2424
  #
2425
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
2426
+ # in Amazon FSx file systems using S3 access points, the only valid
2427
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
2428
+ # systems have encryption configured by default and are encrypted at
2429
+ # rest. Data is automatically encrypted before being written to the
2430
+ # file system, and automatically decrypted as it is read. These
2431
+ # processes are handled transparently by Amazon FSx.
2432
+ #
2404
2433
  #
2405
2434
  #
2406
2435
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
@@ -2415,8 +2444,9 @@ module Aws::S3
2415
2444
  # a different Storage Class. For more information, see [Storage
2416
2445
  # Classes][1] in the *Amazon S3 User Guide*.
2417
2446
  #
2418
- # <note markdown="1"> * For directory buckets, only the S3 Express One Zone storage class is
2419
- # supported to store newly created objects.
2447
+ # <note markdown="1"> * Directory buckets only support `EXPRESS_ONEZONE` (the S3 Express One
2448
+ # Zone storage class) in Availability Zones and `ONEZONE_IA` (the S3
2449
+ # One Zone-Infrequent Access storage class) in Dedicated Local Zones.
2420
2450
  #
2421
2451
  # * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.
2422
2452
  #
@@ -2672,7 +2702,7 @@ module Aws::S3
2672
2702
  # bucket_name: "BucketName", # required
2673
2703
  # prefix: "LocationPrefix", # required
2674
2704
  # encryption: {
2675
- # encryption_type: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse
2705
+ # encryption_type: "AES256", # required, accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
2676
2706
  # kms_key_id: "SSEKMSKeyId",
2677
2707
  # kms_context: "KMSContext",
2678
2708
  # },
@@ -2703,7 +2733,7 @@ module Aws::S3
2703
2733
  # value: "MetadataValue",
2704
2734
  # },
2705
2735
  # ],
2706
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
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
2707
2737
  # },
2708
2738
  # },
2709
2739
  # },
@@ -62,18 +62,16 @@ module Aws
62
62
  class Handler < Seahorse::Client::Handler
63
63
 
64
64
  def call(context)
65
- target = context.params[:response_target] || context[:response_target]
66
-
67
65
  # retry is only supported when range is NOT set on the initial request
68
- if supported_target?(target) && !context.params[:range]
69
- add_event_listeners(context, target)
66
+ if supported_target?(context) && !context.params[:range]
67
+ add_event_listeners(context)
70
68
  end
71
69
  @handler.call(context)
72
70
  end
73
71
 
74
72
  private
75
73
 
76
- def add_event_listeners(context, target)
74
+ def add_event_listeners(context)
77
75
  context.http_response.on_headers(200..299) do
78
76
  case context.http_response.body
79
77
  when Seahorse::Client::BlockIO then
@@ -123,8 +121,8 @@ module Aws
123
121
  context.http_response.body.is_a?(RetryableManagedFile)
124
122
  end
125
123
 
126
- def supported_target?(target)
127
- case target
124
+ def supported_target?(context)
125
+ case context[:response_target]
128
126
  when Proc, String, Pathname then true
129
127
  else false
130
128
  end
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'uri'
4
- require 'cgi'
4
+ require "cgi/escape"
5
+ require "cgi/util" if RUBY_VERSION < "3.5"
5
6
 
6
7
  module Aws
7
8
  module S3
@@ -50,6 +50,12 @@ module Aws::S3
50
50
  # data_redundancy: "SingleAvailabilityZone", # accepts SingleAvailabilityZone, SingleLocalZone
51
51
  # type: "Directory", # accepts Directory
52
52
  # },
53
+ # tags: [
54
+ # {
55
+ # key: "ObjectKey", # required
56
+ # value: "Value", # required
57
+ # },
58
+ # ],
53
59
  # },
54
60
  # grant_full_control: "GrantFullControl",
55
61
  # grant_read: "GrantRead",