aws-sdk-s3 1.121.0 → 1.136.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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +99 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +122 -60
  5. data/lib/aws-sdk-s3/bucket_acl.rb +9 -3
  6. data/lib/aws-sdk-s3/bucket_cors.rb +12 -4
  7. data/lib/aws-sdk-s3/bucket_lifecycle.rb +12 -4
  8. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +12 -4
  9. data/lib/aws-sdk-s3/bucket_logging.rb +9 -3
  10. data/lib/aws-sdk-s3/bucket_notification.rb +9 -3
  11. data/lib/aws-sdk-s3/bucket_policy.rb +12 -4
  12. data/lib/aws-sdk-s3/bucket_request_payment.rb +9 -3
  13. data/lib/aws-sdk-s3/bucket_tagging.rb +12 -4
  14. data/lib/aws-sdk-s3/bucket_versioning.rb +15 -5
  15. data/lib/aws-sdk-s3/bucket_website.rb +12 -4
  16. data/lib/aws-sdk-s3/client.rb +2017 -1674
  17. data/lib/aws-sdk-s3/client_api.rb +24 -0
  18. data/lib/aws-sdk-s3/customizations/bucket.rb +3 -1
  19. data/lib/aws-sdk-s3/customizations/errors.rb +1 -1
  20. data/lib/aws-sdk-s3/customizations/object.rb +91 -18
  21. data/lib/aws-sdk-s3/encryption/client.rb +6 -2
  22. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +13 -9
  23. data/lib/aws-sdk-s3/encryptionV2/client.rb +6 -2
  24. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +1 -0
  25. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -6
  26. data/lib/aws-sdk-s3/endpoint_parameters.rb +4 -0
  27. data/lib/aws-sdk-s3/endpoint_provider.rb +22 -246
  28. data/lib/aws-sdk-s3/endpoints.rb +1 -0
  29. data/lib/aws-sdk-s3/file_downloader.rb +170 -44
  30. data/lib/aws-sdk-s3/file_uploader.rb +8 -6
  31. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +5 -3
  32. data/lib/aws-sdk-s3/multipart_upload.rb +27 -13
  33. data/lib/aws-sdk-s3/multipart_upload_part.rb +19 -9
  34. data/lib/aws-sdk-s3/object.rb +151 -105
  35. data/lib/aws-sdk-s3/object_acl.rb +14 -6
  36. data/lib/aws-sdk-s3/object_copier.rb +7 -5
  37. data/lib/aws-sdk-s3/object_multipart_copier.rb +33 -17
  38. data/lib/aws-sdk-s3/object_summary.rb +144 -89
  39. data/lib/aws-sdk-s3/object_version.rb +55 -21
  40. data/lib/aws-sdk-s3/presigned_post.rb +52 -43
  41. data/lib/aws-sdk-s3/presigner.rb +4 -2
  42. data/lib/aws-sdk-s3/resource.rb +7 -3
  43. data/lib/aws-sdk-s3/types.rb +854 -484
  44. data/lib/aws-sdk-s3.rb +1 -1
  45. metadata +6 -6
@@ -239,11 +239,8 @@ module Aws::S3
239
239
  data[:website_redirect_location]
240
240
  end
241
241
 
242
- # If the object is stored using server-side encryption either with an
243
- # Amazon Web Services KMS key or an Amazon S3-managed encryption key,
244
- # the response includes this header with the value of the server-side
245
- # encryption algorithm used when storing this object in Amazon S3 (for
246
- # example, AES256, aws:kms).
242
+ # The server-side encryption algorithm used when storing this object in
243
+ # Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
247
244
  # @return [String]
248
245
  def server_side_encryption
249
246
  data[:server_side_encryption]
@@ -272,16 +269,16 @@ module Aws::S3
272
269
  data[:sse_customer_key_md5]
273
270
  end
274
271
 
275
- # If present, specifies the ID of the Amazon Web Services Key Management
276
- # Service (Amazon Web Services KMS) symmetric customer managed key that
277
- # was used for the object.
272
+ # If present, specifies the ID of the Key Management Service (KMS)
273
+ # symmetric encryption customer managed key that was used for the
274
+ # object.
278
275
  # @return [String]
279
276
  def ssekms_key_id
280
277
  data[:ssekms_key_id]
281
278
  end
282
279
 
283
280
  # Indicates whether the object uses an S3 Bucket Key for server-side
284
- # encryption with Amazon Web Services KMS (SSE-KMS).
281
+ # encryption with Key Management Service (KMS) keys (SSE-KMS).
285
282
  # @return [Boolean]
286
283
  def bucket_key_enabled
287
284
  data[:bucket_key_enabled]
@@ -410,10 +407,12 @@ module Aws::S3
410
407
  #
411
408
  # @return [self]
412
409
  def load
413
- resp = @client.head_object(
410
+ resp = Aws::Plugins::UserAgent.feature('resource') do
411
+ @client.head_object(
414
412
  bucket: @bucket_name,
415
413
  key: @key
416
414
  )
415
+ end
417
416
  @data = resp.data
418
417
  self
419
418
  end
@@ -458,8 +457,10 @@ module Aws::S3
458
457
  options, params = separate_params_and_options(options)
459
458
  waiter = Waiters::ObjectExists.new(options)
460
459
  yield_waiter_and_warn(waiter, &block) if block_given?
461
- waiter.wait(params.merge(bucket: @bucket_name,
460
+ Aws::Plugins::UserAgent.feature('resource') do
461
+ waiter.wait(params.merge(bucket: @bucket_name,
462
462
  key: @key))
463
+ end
463
464
  Object.new({
464
465
  bucket_name: @bucket_name,
465
466
  key: @key,
@@ -477,8 +478,10 @@ module Aws::S3
477
478
  options, params = separate_params_and_options(options)
478
479
  waiter = Waiters::ObjectNotExists.new(options)
479
480
  yield_waiter_and_warn(waiter, &block) if block_given?
480
- waiter.wait(params.merge(bucket: @bucket_name,
481
+ Aws::Plugins::UserAgent.feature('resource') do
482
+ waiter.wait(params.merge(bucket: @bucket_name,
481
483
  key: @key))
484
+ end
482
485
  Object.new({
483
486
  bucket_name: @bucket_name,
484
487
  key: @key,
@@ -580,7 +583,9 @@ module Aws::S3
580
583
  :retry
581
584
  end
582
585
  end
583
- Aws::Waiters::Waiter.new(options).wait({})
586
+ Aws::Plugins::UserAgent.feature('resource') do
587
+ Aws::Waiters::Waiter.new(options).wait({})
588
+ end
584
589
  end
585
590
 
586
591
  # @!group Actions
@@ -610,7 +615,7 @@ module Aws::S3
610
615
  # },
611
616
  # metadata_directive: "COPY", # accepts COPY, REPLACE
612
617
  # tagging_directive: "COPY", # accepts COPY, REPLACE
613
- # server_side_encryption: "AES256", # accepts AES256, aws:kms
618
+ # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
614
619
  # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW
615
620
  # website_redirect_location: "WebsiteRedirectLocation",
616
621
  # sse_customer_algorithm: "SSECustomerAlgorithm",
@@ -740,14 +745,15 @@ module Aws::S3
740
745
  # or replaced with tag-set provided in the request.
741
746
  # @option options [String] :server_side_encryption
742
747
  # The server-side encryption algorithm used when storing this object in
743
- # Amazon S3 (for example, AES256, aws:kms).
748
+ # Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
744
749
  # @option options [String] :storage_class
745
- # By default, Amazon S3 uses the STANDARD Storage Class to store newly
746
- # created objects. The STANDARD storage class provides high durability
747
- # and high availability. Depending on performance needs, you can specify
748
- # a different Storage Class. Amazon S3 on Outposts only uses the
749
- # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
750
- # in the *Amazon S3 User Guide*.
750
+ # If the `x-amz-storage-class` header is not used, the copied object
751
+ # will be stored in the STANDARD Storage Class by default. The STANDARD
752
+ # storage class provides high durability and high availability.
753
+ # Depending on performance needs, you can specify a different Storage
754
+ # Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For
755
+ # more information, see [Storage Classes][1] in the *Amazon S3 User
756
+ # Guide*.
751
757
  #
752
758
  #
753
759
  #
@@ -755,7 +761,10 @@ module Aws::S3
755
761
  # @option options [String] :website_redirect_location
756
762
  # If the bucket is configured as a website, redirects requests for this
757
763
  # object to another object in the same bucket or to an external URL.
758
- # Amazon S3 stores the value of this header in the object metadata.
764
+ # Amazon S3 stores the value of this header in the object metadata. This
765
+ # value is unique to each object and is not copied when using the
766
+ # `x-amz-metadata-directive` header. Instead, you may opt to provide
767
+ # this header in combination with the directive.
759
768
  # @option options [String] :sse_customer_algorithm
760
769
  # Specifies the algorithm to use to when encrypting the object (for
761
770
  # example, AES256).
@@ -770,13 +779,12 @@ module Aws::S3
770
779
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
771
780
  # ensure that the encryption key was transmitted without error.
772
781
  # @option options [String] :ssekms_key_id
773
- # Specifies the Amazon Web Services KMS key ID to use for object
774
- # encryption. All GET and PUT requests for an object protected by Amazon
775
- # Web Services KMS will fail if not made via SSL or using SigV4. For
776
- # information about configuring using any of the officially supported
777
- # Amazon Web Services SDKs and Amazon Web Services CLI, see [Specifying
778
- # the Signature Version in Request Authentication][1] in the *Amazon S3
779
- # User Guide*.
782
+ # Specifies the KMS ID (Key ID, Key ARN, or Key Alias) to use for object
783
+ # encryption. All GET and PUT requests for an object protected by KMS
784
+ # will fail if they're not made via SSL or using SigV4. For information
785
+ # about configuring any of the officially supported Amazon Web Services
786
+ # SDKs and Amazon Web Services CLI, see [Specifying the Signature
787
+ # Version in Request Authentication][1] in the *Amazon S3 User Guide*.
780
788
  #
781
789
  #
782
790
  #
@@ -787,9 +795,9 @@ module Aws::S3
787
795
  # string holding JSON with the encryption context key-value pairs.
788
796
  # @option options [Boolean] :bucket_key_enabled
789
797
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
790
- # encryption with server-side encryption using AWS KMS (SSE-KMS).
791
- # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
792
- # for object encryption with SSE-KMS.
798
+ # encryption with server-side encryption using Key Management Service
799
+ # (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3
800
+ # to use an S3 Bucket Key for object encryption with SSE-KMS.
793
801
  #
794
802
  # Specifying this header with a COPY action doesn’t affect bucket-level
795
803
  # settings for S3 Bucket Key.
@@ -807,9 +815,11 @@ module Aws::S3
807
815
  # @option options [String] :request_payer
808
816
  # Confirms that the requester knows that they will be charged for the
809
817
  # request. Bucket owners need not specify this parameter in their
810
- # requests. For information about downloading objects from Requester
811
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
812
- # in the *Amazon S3 User Guide*.
818
+ # requests. If either the source or destination Amazon S3 bucket has
819
+ # Requester Pays enabled, the requester will pay for corresponding
820
+ # charges to copy the object. For information about downloading objects
821
+ # from Requester Pays buckets, see [Downloading Objects in Requester
822
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
813
823
  #
814
824
  #
815
825
  #
@@ -839,7 +849,9 @@ module Aws::S3
839
849
  bucket: @bucket_name,
840
850
  key: @key
841
851
  )
842
- resp = @client.copy_object(options)
852
+ resp = Aws::Plugins::UserAgent.feature('resource') do
853
+ @client.copy_object(options)
854
+ end
843
855
  resp.data
844
856
  end
845
857
 
@@ -863,9 +875,11 @@ module Aws::S3
863
875
  # @option options [String] :request_payer
864
876
  # Confirms that the requester knows that they will be charged for the
865
877
  # request. Bucket owners need not specify this parameter in their
866
- # requests. For information about downloading objects from Requester
867
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
868
- # in the *Amazon S3 User Guide*.
878
+ # requests. If either the source or destination Amazon S3 bucket has
879
+ # Requester Pays enabled, the requester will pay for corresponding
880
+ # charges to copy the object. For information about downloading objects
881
+ # from Requester Pays buckets, see [Downloading Objects in Requester
882
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
869
883
  #
870
884
  #
871
885
  #
@@ -884,7 +898,9 @@ module Aws::S3
884
898
  bucket: @bucket_name,
885
899
  key: @key
886
900
  )
887
- resp = @client.delete_object(options)
901
+ resp = Aws::Plugins::UserAgent.feature('resource') do
902
+ @client.delete_object(options)
903
+ end
888
904
  resp.data
889
905
  end
890
906
 
@@ -927,7 +943,7 @@ module Aws::S3
927
943
  # @option options [String] :range
928
944
  # Downloads the specified range bytes of an object. For more information
929
945
  # about the HTTP Range header, see
930
- # [https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35][1].
946
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#name-range][1].
931
947
  #
932
948
  # <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
933
949
  # `GET` request.
@@ -936,7 +952,7 @@ module Aws::S3
936
952
  #
937
953
  #
938
954
  #
939
- # [1]: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
955
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-range
940
956
  # @option options [String] :response_cache_control
941
957
  # Sets the `Cache-Control` header of the response.
942
958
  # @option options [String] :response_content_disposition
@@ -967,9 +983,11 @@ module Aws::S3
967
983
  # @option options [String] :request_payer
968
984
  # Confirms that the requester knows that they will be charged for the
969
985
  # request. Bucket owners need not specify this parameter in their
970
- # requests. For information about downloading objects from Requester
971
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
972
- # in the *Amazon S3 User Guide*.
986
+ # requests. If either the source or destination Amazon S3 bucket has
987
+ # Requester Pays enabled, the requester will pay for corresponding
988
+ # charges to copy the object. For information about downloading objects
989
+ # from Requester Pays buckets, see [Downloading Objects in Requester
990
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
973
991
  #
974
992
  #
975
993
  #
@@ -991,7 +1009,9 @@ module Aws::S3
991
1009
  bucket: @bucket_name,
992
1010
  key: @key
993
1011
  )
994
- resp = @client.get_object(options, &block)
1012
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1013
+ @client.get_object(options, &block)
1014
+ end
995
1015
  resp.data
996
1016
  end
997
1017
 
@@ -1012,7 +1032,7 @@ module Aws::S3
1012
1032
  # metadata: {
1013
1033
  # "MetadataKey" => "MetadataValue",
1014
1034
  # },
1015
- # server_side_encryption: "AES256", # accepts AES256, aws:kms
1035
+ # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
1016
1036
  # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW
1017
1037
  # website_redirect_location: "WebsiteRedirectLocation",
1018
1038
  # sse_customer_algorithm: "SSECustomerAlgorithm",
@@ -1069,7 +1089,7 @@ module Aws::S3
1069
1089
  # A map of metadata to store with the object in S3.
1070
1090
  # @option options [String] :server_side_encryption
1071
1091
  # The server-side encryption algorithm used when storing this object in
1072
- # Amazon S3 (for example, AES256, aws:kms).
1092
+ # Amazon S3 (for example, `AES256`, `aws:kms`).
1073
1093
  # @option options [String] :storage_class
1074
1094
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
1075
1095
  # created objects. The STANDARD storage class provides high durability
@@ -1099,13 +1119,13 @@ module Aws::S3
1099
1119
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
1100
1120
  # ensure that the encryption key was transmitted without error.
1101
1121
  # @option options [String] :ssekms_key_id
1102
- # Specifies the ID of the symmetric customer managed key to use for
1103
- # object encryption. All GET and PUT requests for an object protected by
1104
- # Amazon Web Services KMS will fail if not made via SSL or using SigV4.
1105
- # For information about configuring using any of the officially
1106
- # supported Amazon Web Services SDKs and Amazon Web Services CLI, see
1107
- # [Specifying the Signature Version in Request Authentication][1] in the
1108
- # *Amazon S3 User Guide*.
1122
+ # Specifies the ID (Key ID, Key ARN, or Key Alias) of the symmetric
1123
+ # encryption customer managed key to use for object encryption. All GET
1124
+ # and PUT requests for an object protected by KMS will fail if they're
1125
+ # not made via SSL or using SigV4. For information about configuring any
1126
+ # of the officially supported Amazon Web Services SDKs and Amazon Web
1127
+ # Services CLI, see [Specifying the Signature Version in Request
1128
+ # Authentication][1] in the *Amazon S3 User Guide*.
1109
1129
  #
1110
1130
  #
1111
1131
  #
@@ -1116,18 +1136,20 @@ module Aws::S3
1116
1136
  # string holding JSON with the encryption context key-value pairs.
1117
1137
  # @option options [Boolean] :bucket_key_enabled
1118
1138
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1119
- # encryption with server-side encryption using AWS KMS (SSE-KMS).
1120
- # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
1121
- # for object encryption with SSE-KMS.
1139
+ # encryption with server-side encryption using Key Management Service
1140
+ # (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3
1141
+ # to use an S3 Bucket Key for object encryption with SSE-KMS.
1122
1142
  #
1123
1143
  # Specifying this header with an object action doesn’t affect
1124
1144
  # bucket-level settings for S3 Bucket Key.
1125
1145
  # @option options [String] :request_payer
1126
1146
  # Confirms that the requester knows that they will be charged for the
1127
1147
  # request. Bucket owners need not specify this parameter in their
1128
- # requests. For information about downloading objects from Requester
1129
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1130
- # in the *Amazon S3 User Guide*.
1148
+ # requests. If either the source or destination Amazon S3 bucket has
1149
+ # Requester Pays enabled, the requester will pay for corresponding
1150
+ # charges to copy the object. For information about downloading objects
1151
+ # from Requester Pays buckets, see [Downloading Objects in Requester
1152
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
1131
1153
  #
1132
1154
  #
1133
1155
  #
@@ -1161,7 +1183,9 @@ module Aws::S3
1161
1183
  bucket: @bucket_name,
1162
1184
  key: @key
1163
1185
  )
1164
- resp = @client.create_multipart_upload(options)
1186
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1187
+ @client.create_multipart_upload(options)
1188
+ end
1165
1189
  MultipartUpload.new(
1166
1190
  bucket_name: @bucket_name,
1167
1191
  object_key: @key,
@@ -1195,7 +1219,7 @@ module Aws::S3
1195
1219
  # metadata: {
1196
1220
  # "MetadataKey" => "MetadataValue",
1197
1221
  # },
1198
- # server_side_encryption: "AES256", # accepts AES256, aws:kms
1222
+ # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
1199
1223
  # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW
1200
1224
  # website_redirect_location: "WebsiteRedirectLocation",
1201
1225
  # sse_customer_algorithm: "SSECustomerAlgorithm",
@@ -1234,30 +1258,30 @@ module Aws::S3
1234
1258
  # @option options [String] :content_disposition
1235
1259
  # Specifies presentational information for the object. For more
1236
1260
  # information, see
1237
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1][1].
1261
+ # [https://www.rfc-editor.org/rfc/rfc6266#section-4][1].
1238
1262
  #
1239
1263
  #
1240
1264
  #
1241
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1
1265
+ # [1]: https://www.rfc-editor.org/rfc/rfc6266#section-4
1242
1266
  # @option options [String] :content_encoding
1243
1267
  # Specifies what content encodings have been applied to the object and
1244
1268
  # thus what decoding mechanisms must be applied to obtain the media-type
1245
1269
  # referenced by the Content-Type header field. For more information, see
1246
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11][1].
1270
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding][1].
1247
1271
  #
1248
1272
  #
1249
1273
  #
1250
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11
1274
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding
1251
1275
  # @option options [String] :content_language
1252
1276
  # The language the content is in.
1253
1277
  # @option options [Integer] :content_length
1254
1278
  # Size of the body in bytes. This parameter is useful when the size of
1255
1279
  # the body cannot be determined automatically. For more information, see
1256
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13][1].
1280
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length][1].
1257
1281
  #
1258
1282
  #
1259
1283
  #
1260
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13
1284
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length
1261
1285
  # @option options [String] :content_md5
1262
1286
  # The base64-encoded 128-bit MD5 digest of the message (without the
1263
1287
  # headers) according to RFC 1864. This header can be used as a message
@@ -1273,11 +1297,11 @@ module Aws::S3
1273
1297
  # @option options [String] :content_type
1274
1298
  # A standard MIME type describing the format of the contents. For more
1275
1299
  # information, see
1276
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17][1].
1300
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type][1].
1277
1301
  #
1278
1302
  #
1279
1303
  #
1280
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17
1304
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type
1281
1305
  # @option options [String] :checksum_algorithm
1282
1306
  # Indicates the algorithm used to create the checksum for the object
1283
1307
  # when using the SDK. This header will not provide any additional
@@ -1336,11 +1360,11 @@ module Aws::S3
1336
1360
  # @option options [Time,DateTime,Date,Integer,String] :expires
1337
1361
  # The date and time at which the object is no longer cacheable. For more
1338
1362
  # information, see
1339
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21][1].
1363
+ # [https://www.rfc-editor.org/rfc/rfc7234#section-5.3][1].
1340
1364
  #
1341
1365
  #
1342
1366
  #
1343
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21
1367
+ # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
1344
1368
  # @option options [String] :grant_full_control
1345
1369
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
1346
1370
  # object.
@@ -1362,7 +1386,7 @@ module Aws::S3
1362
1386
  # A map of metadata to store with the object in S3.
1363
1387
  # @option options [String] :server_side_encryption
1364
1388
  # The server-side encryption algorithm used when storing this object in
1365
- # Amazon S3 (for example, AES256, aws:kms).
1389
+ # Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
1366
1390
  # @option options [String] :storage_class
1367
1391
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
1368
1392
  # created objects. The STANDARD storage class provides high durability
@@ -1413,33 +1437,39 @@ module Aws::S3
1413
1437
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
1414
1438
  # ensure that the encryption key was transmitted without error.
1415
1439
  # @option options [String] :ssekms_key_id
1416
- # If `x-amz-server-side-encryption` is present and has the value of
1417
- # `aws:kms`, this header specifies the ID of the Amazon Web Services Key
1418
- # Management Service (Amazon Web Services KMS) symmetrical customer
1419
- # managed key that was used for the object. If you specify
1420
- # `x-amz-server-side-encryption:aws:kms`, but do not provide`
1440
+ # If `x-amz-server-side-encryption` has a valid value of `aws:kms` or
1441
+ # `aws:kms:dsse`, this header specifies the ID (Key ID, Key ARN, or Key
1442
+ # Alias) of the Key Management Service (KMS) symmetric encryption
1443
+ # customer managed key that was used for the object. If you specify
1444
+ # `x-amz-server-side-encryption:aws:kms` or
1445
+ # `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide`
1421
1446
  # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
1422
- # Amazon Web Services managed key to protect the data. If the KMS key
1423
- # does not exist in the same account issuing the command, you must use
1424
- # the full ARN and not just the ID.
1447
+ # Amazon Web Services managed key (`aws/s3`) to protect the data. If the
1448
+ # KMS key does not exist in the same account that's issuing the
1449
+ # command, you must use the full ARN and not just the ID.
1425
1450
  # @option options [String] :ssekms_encryption_context
1426
1451
  # Specifies the Amazon Web Services KMS Encryption Context to use for
1427
1452
  # object encryption. The value of this header is a base64-encoded UTF-8
1428
- # string holding JSON with the encryption context key-value pairs.
1453
+ # string holding JSON with the encryption context key-value pairs. This
1454
+ # value is stored as object metadata and automatically gets passed on to
1455
+ # Amazon Web Services KMS for future `GetObject` or `CopyObject`
1456
+ # operations on this object.
1429
1457
  # @option options [Boolean] :bucket_key_enabled
1430
1458
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1431
- # encryption with server-side encryption using AWS KMS (SSE-KMS).
1432
- # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
1433
- # for object encryption with SSE-KMS.
1459
+ # encryption with server-side encryption using Key Management Service
1460
+ # (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3
1461
+ # to use an S3 Bucket Key for object encryption with SSE-KMS.
1434
1462
  #
1435
1463
  # Specifying this header with a PUT action doesn’t affect bucket-level
1436
1464
  # settings for S3 Bucket Key.
1437
1465
  # @option options [String] :request_payer
1438
1466
  # Confirms that the requester knows that they will be charged for the
1439
1467
  # request. Bucket owners need not specify this parameter in their
1440
- # requests. For information about downloading objects from Requester
1441
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1442
- # in the *Amazon S3 User Guide*.
1468
+ # requests. If either the source or destination Amazon S3 bucket has
1469
+ # Requester Pays enabled, the requester will pay for corresponding
1470
+ # charges to copy the object. For information about downloading objects
1471
+ # from Requester Pays buckets, see [Downloading Objects in Requester
1472
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
1443
1473
  #
1444
1474
  #
1445
1475
  #
@@ -1469,7 +1499,9 @@ module Aws::S3
1469
1499
  bucket: @bucket_name,
1470
1500
  key: @key
1471
1501
  )
1472
- resp = @client.put_object(options)
1502
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1503
+ @client.put_object(options)
1504
+ end
1473
1505
  resp.data
1474
1506
  end
1475
1507
 
@@ -1523,7 +1555,7 @@ module Aws::S3
1523
1555
  # bucket_name: "BucketName", # required
1524
1556
  # prefix: "LocationPrefix", # required
1525
1557
  # encryption: {
1526
- # encryption_type: "AES256", # required, accepts AES256, aws:kms
1558
+ # encryption_type: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse
1527
1559
  # kms_key_id: "SSEKMSKeyId",
1528
1560
  # kms_context: "KMSContext",
1529
1561
  # },
@@ -1570,9 +1602,11 @@ module Aws::S3
1570
1602
  # @option options [String] :request_payer
1571
1603
  # Confirms that the requester knows that they will be charged for the
1572
1604
  # request. Bucket owners need not specify this parameter in their
1573
- # requests. For information about downloading objects from Requester
1574
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1575
- # in the *Amazon S3 User Guide*.
1605
+ # requests. If either the source or destination Amazon S3 bucket has
1606
+ # Requester Pays enabled, the requester will pay for corresponding
1607
+ # charges to copy the object. For information about downloading objects
1608
+ # from Requester Pays buckets, see [Downloading Objects in Requester
1609
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
1576
1610
  #
1577
1611
  #
1578
1612
  #
@@ -1602,7 +1636,9 @@ module Aws::S3
1602
1636
  bucket: @bucket_name,
1603
1637
  key: @key
1604
1638
  )
1605
- resp = @client.restore_object(options)
1639
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1640
+ @client.restore_object(options)
1641
+ end
1606
1642
  resp.data
1607
1643
  end
1608
1644
 
@@ -1637,8 +1673,10 @@ module Aws::S3
1637
1673
  # Return the object only if it has not been modified since the specified
1638
1674
  # time; otherwise, return a 412 (precondition failed) error.
1639
1675
  # @option options [String] :range
1640
- # Because `HeadObject` returns only the metadata for an object, this
1641
- # parameter has no effect.
1676
+ # HeadObject returns only the metadata for an object. If the Range is
1677
+ # satisfiable, only the `ContentLength` is affected in the response. If
1678
+ # the Range is not satisfiable, S3 returns a `416 - Requested Range Not
1679
+ # Satisfiable` error.
1642
1680
  # @option options [String] :version_id
1643
1681
  # VersionId used to reference a specific version of the object.
1644
1682
  # @option options [String] :sse_customer_algorithm
@@ -1657,9 +1695,11 @@ module Aws::S3
1657
1695
  # @option options [String] :request_payer
1658
1696
  # Confirms that the requester knows that they will be charged for the
1659
1697
  # request. Bucket owners need not specify this parameter in their
1660
- # requests. For information about downloading objects from Requester
1661
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1662
- # in the *Amazon S3 User Guide*.
1698
+ # requests. If either the source or destination Amazon S3 bucket has
1699
+ # Requester Pays enabled, the requester will pay for corresponding
1700
+ # charges to copy the object. For information about downloading objects
1701
+ # from Requester Pays buckets, see [Downloading Objects in Requester
1702
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
1663
1703
  #
1664
1704
  #
1665
1705
  #
@@ -1686,7 +1726,9 @@ module Aws::S3
1686
1726
  bucket: @bucket_name,
1687
1727
  key: @key
1688
1728
  )
1689
- resp = @client.head_object(options)
1729
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1730
+ @client.head_object(options)
1731
+ end
1690
1732
  resp.data
1691
1733
  end
1692
1734
 
@@ -1814,9 +1856,11 @@ module Aws::S3
1814
1856
  # @option options [String] :request_payer
1815
1857
  # Confirms that the requester knows that they will be charged for the
1816
1858
  # request. Bucket owners need not specify this parameter in their
1817
- # requests. For information about downloading objects from Requester
1818
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1819
- # in the *Amazon S3 User Guide*.
1859
+ # requests. If either the source or destination Amazon S3 bucket has
1860
+ # Requester Pays enabled, the requester will pay for corresponding
1861
+ # charges to copy the object. For information about downloading objects
1862
+ # from Requester Pays buckets, see [Downloading Objects in Requester
1863
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
1820
1864
  #
1821
1865
  #
1822
1866
  #
@@ -1859,7 +1903,9 @@ module Aws::S3
1859
1903
  key: item.key
1860
1904
  }
1861
1905
  end
1862
- batch[0].client.delete_objects(params)
1906
+ Aws::Plugins::UserAgent.feature('resource') do
1907
+ batch[0].client.delete_objects(params)
1908
+ end
1863
1909
  end
1864
1910
  nil
1865
1911
  end
@@ -75,10 +75,12 @@ module Aws::S3
75
75
  #
76
76
  # @return [self]
77
77
  def load
78
- resp = @client.get_object_acl(
78
+ resp = Aws::Plugins::UserAgent.feature('resource') do
79
+ @client.get_object_acl(
79
80
  bucket: @bucket_name,
80
81
  key: @object_key
81
82
  )
83
+ end
82
84
  @data = resp.data
83
85
  self
84
86
  end
@@ -193,7 +195,9 @@ module Aws::S3
193
195
  :retry
194
196
  end
195
197
  end
196
- Aws::Waiters::Waiter.new(options).wait({})
198
+ Aws::Plugins::UserAgent.feature('resource') do
199
+ Aws::Waiters::Waiter.new(options).wait({})
200
+ end
197
201
  end
198
202
 
199
203
  # @!group Actions
@@ -295,9 +299,11 @@ module Aws::S3
295
299
  # @option options [String] :request_payer
296
300
  # Confirms that the requester knows that they will be charged for the
297
301
  # request. Bucket owners need not specify this parameter in their
298
- # requests. For information about downloading objects from Requester
299
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
300
- # in the *Amazon S3 User Guide*.
302
+ # requests. If either the source or destination Amazon S3 bucket has
303
+ # Requester Pays enabled, the requester will pay for corresponding
304
+ # charges to copy the object. For information about downloading objects
305
+ # from Requester Pays buckets, see [Downloading Objects in Requester
306
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
301
307
  #
302
308
  #
303
309
  #
@@ -314,7 +320,9 @@ module Aws::S3
314
320
  bucket: @bucket_name,
315
321
  key: @object_key
316
322
  )
317
- resp = @client.put_object_acl(options)
323
+ resp = Aws::Plugins::UserAgent.feature('resource') do
324
+ @client.put_object_acl(options)
325
+ end
318
326
  resp.data
319
327
  end
320
328
 
@@ -28,11 +28,13 @@ module Aws
28
28
  options[:bucket] = target_bucket
29
29
  options[:key] = target_key
30
30
  options[:copy_source] = copy_source(source)
31
- if options.delete(:multipart_copy)
32
- apply_source_client(source, options)
33
- ObjectMultipartCopier.new(@options).copy(options)
34
- else
35
- @object.client.copy_object(options)
31
+ Aws::Plugins::UserAgent.feature('s3-transfer') do
32
+ if options.delete(:multipart_copy)
33
+ apply_source_client(source, options)
34
+ ObjectMultipartCopier.new(@options).copy(options)
35
+ else
36
+ @object.client.copy_object(options)
37
+ end
36
38
  end
37
39
  end
38
40