aws-sdk-s3 1.121.0 → 1.123.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +48 -25
  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 +1547 -1300
  17. data/lib/aws-sdk-s3/customizations/bucket.rb +3 -1
  18. data/lib/aws-sdk-s3/customizations/object.rb +28 -18
  19. data/lib/aws-sdk-s3/encryption/client.rb +6 -2
  20. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +13 -9
  21. data/lib/aws-sdk-s3/encryptionV2/client.rb +6 -2
  22. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -6
  23. data/lib/aws-sdk-s3/file_downloader.rb +14 -12
  24. data/lib/aws-sdk-s3/file_uploader.rb +8 -6
  25. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +5 -3
  26. data/lib/aws-sdk-s3/multipart_upload.rb +12 -4
  27. data/lib/aws-sdk-s3/multipart_upload_part.rb +9 -3
  28. data/lib/aws-sdk-s3/object.rb +77 -48
  29. data/lib/aws-sdk-s3/object_acl.rb +9 -3
  30. data/lib/aws-sdk-s3/object_copier.rb +7 -5
  31. data/lib/aws-sdk-s3/object_summary.rb +63 -37
  32. data/lib/aws-sdk-s3/object_version.rb +21 -9
  33. data/lib/aws-sdk-s3/resource.rb +6 -2
  34. data/lib/aws-sdk-s3/types.rb +403 -263
  35. data/lib/aws-sdk-s3.rb +1 -1
  36. metadata +4 -4
@@ -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`).
247
244
  # @return [String]
248
245
  def server_side_encryption
249
246
  data[:server_side_encryption]
@@ -273,8 +270,8 @@ module Aws::S3
273
270
  end
274
271
 
275
272
  # 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.
273
+ # Service (Amazon Web Services KMS) symmetric encryption customer
274
+ # managed key that was used for the object.
278
275
  # @return [String]
279
276
  def ssekms_key_id
280
277
  data[:ssekms_key_id]
@@ -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
@@ -740,7 +745,7 @@ 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`).
744
749
  # @option options [String] :storage_class
745
750
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
746
751
  # created objects. The STANDARD storage class provides high durability
@@ -755,7 +760,10 @@ module Aws::S3
755
760
  # @option options [String] :website_redirect_location
756
761
  # If the bucket is configured as a website, redirects requests for this
757
762
  # 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.
763
+ # Amazon S3 stores the value of this header in the object metadata. This
764
+ # value is unique to each object and is not copied when using the
765
+ # `x-amz-metadata-directive` header. Instead, you may opt to provide
766
+ # this header in combination with the directive.
759
767
  # @option options [String] :sse_customer_algorithm
760
768
  # Specifies the algorithm to use to when encrypting the object (for
761
769
  # example, AES256).
@@ -839,7 +847,9 @@ module Aws::S3
839
847
  bucket: @bucket_name,
840
848
  key: @key
841
849
  )
842
- resp = @client.copy_object(options)
850
+ resp = Aws::Plugins::UserAgent.feature('resource') do
851
+ @client.copy_object(options)
852
+ end
843
853
  resp.data
844
854
  end
845
855
 
@@ -884,7 +894,9 @@ module Aws::S3
884
894
  bucket: @bucket_name,
885
895
  key: @key
886
896
  )
887
- resp = @client.delete_object(options)
897
+ resp = Aws::Plugins::UserAgent.feature('resource') do
898
+ @client.delete_object(options)
899
+ end
888
900
  resp.data
889
901
  end
890
902
 
@@ -927,7 +939,7 @@ module Aws::S3
927
939
  # @option options [String] :range
928
940
  # Downloads the specified range bytes of an object. For more information
929
941
  # about the HTTP Range header, see
930
- # [https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35][1].
942
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#name-range][1].
931
943
  #
932
944
  # <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
933
945
  # `GET` request.
@@ -936,7 +948,7 @@ module Aws::S3
936
948
  #
937
949
  #
938
950
  #
939
- # [1]: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
951
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-range
940
952
  # @option options [String] :response_cache_control
941
953
  # Sets the `Cache-Control` header of the response.
942
954
  # @option options [String] :response_content_disposition
@@ -991,7 +1003,9 @@ module Aws::S3
991
1003
  bucket: @bucket_name,
992
1004
  key: @key
993
1005
  )
994
- resp = @client.get_object(options, &block)
1006
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1007
+ @client.get_object(options, &block)
1008
+ end
995
1009
  resp.data
996
1010
  end
997
1011
 
@@ -1069,7 +1083,7 @@ module Aws::S3
1069
1083
  # A map of metadata to store with the object in S3.
1070
1084
  # @option options [String] :server_side_encryption
1071
1085
  # The server-side encryption algorithm used when storing this object in
1072
- # Amazon S3 (for example, AES256, aws:kms).
1086
+ # Amazon S3 (for example, AES256, `aws:kms`).
1073
1087
  # @option options [String] :storage_class
1074
1088
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
1075
1089
  # created objects. The STANDARD storage class provides high durability
@@ -1099,13 +1113,13 @@ module Aws::S3
1099
1113
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
1100
1114
  # ensure that the encryption key was transmitted without error.
1101
1115
  # @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*.
1116
+ # Specifies the ID of the symmetric encryption customer managed key to
1117
+ # use for object encryption. All GET and PUT requests for an object
1118
+ # protected by Amazon Web Services KMS will fail if not made via SSL or
1119
+ # using SigV4. For information about configuring using any of the
1120
+ # officially supported Amazon Web Services SDKs and Amazon Web Services
1121
+ # CLI, see [Specifying the Signature Version in Request
1122
+ # Authentication][1] in the *Amazon S3 User Guide*.
1109
1123
  #
1110
1124
  #
1111
1125
  #
@@ -1161,7 +1175,9 @@ module Aws::S3
1161
1175
  bucket: @bucket_name,
1162
1176
  key: @key
1163
1177
  )
1164
- resp = @client.create_multipart_upload(options)
1178
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1179
+ @client.create_multipart_upload(options)
1180
+ end
1165
1181
  MultipartUpload.new(
1166
1182
  bucket_name: @bucket_name,
1167
1183
  object_key: @key,
@@ -1234,30 +1250,30 @@ module Aws::S3
1234
1250
  # @option options [String] :content_disposition
1235
1251
  # Specifies presentational information for the object. For more
1236
1252
  # information, see
1237
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1][1].
1253
+ # [https://www.rfc-editor.org/rfc/rfc6266#section-4][1].
1238
1254
  #
1239
1255
  #
1240
1256
  #
1241
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1
1257
+ # [1]: https://www.rfc-editor.org/rfc/rfc6266#section-4
1242
1258
  # @option options [String] :content_encoding
1243
1259
  # Specifies what content encodings have been applied to the object and
1244
1260
  # thus what decoding mechanisms must be applied to obtain the media-type
1245
1261
  # referenced by the Content-Type header field. For more information, see
1246
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11][1].
1262
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding][1].
1247
1263
  #
1248
1264
  #
1249
1265
  #
1250
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11
1266
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding
1251
1267
  # @option options [String] :content_language
1252
1268
  # The language the content is in.
1253
1269
  # @option options [Integer] :content_length
1254
1270
  # Size of the body in bytes. This parameter is useful when the size of
1255
1271
  # the body cannot be determined automatically. For more information, see
1256
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13][1].
1272
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length][1].
1257
1273
  #
1258
1274
  #
1259
1275
  #
1260
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13
1276
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length
1261
1277
  # @option options [String] :content_md5
1262
1278
  # The base64-encoded 128-bit MD5 digest of the message (without the
1263
1279
  # headers) according to RFC 1864. This header can be used as a message
@@ -1273,11 +1289,11 @@ module Aws::S3
1273
1289
  # @option options [String] :content_type
1274
1290
  # A standard MIME type describing the format of the contents. For more
1275
1291
  # information, see
1276
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17][1].
1292
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type][1].
1277
1293
  #
1278
1294
  #
1279
1295
  #
1280
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17
1296
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type
1281
1297
  # @option options [String] :checksum_algorithm
1282
1298
  # Indicates the algorithm used to create the checksum for the object
1283
1299
  # when using the SDK. This header will not provide any additional
@@ -1336,11 +1352,11 @@ module Aws::S3
1336
1352
  # @option options [Time,DateTime,Date,Integer,String] :expires
1337
1353
  # The date and time at which the object is no longer cacheable. For more
1338
1354
  # information, see
1339
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21][1].
1355
+ # [https://www.rfc-editor.org/rfc/rfc7234#section-5.3][1].
1340
1356
  #
1341
1357
  #
1342
1358
  #
1343
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21
1359
+ # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
1344
1360
  # @option options [String] :grant_full_control
1345
1361
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
1346
1362
  # object.
@@ -1362,7 +1378,7 @@ module Aws::S3
1362
1378
  # A map of metadata to store with the object in S3.
1363
1379
  # @option options [String] :server_side_encryption
1364
1380
  # The server-side encryption algorithm used when storing this object in
1365
- # Amazon S3 (for example, AES256, aws:kms).
1381
+ # Amazon S3 (for example, AES256, `aws:kms`).
1366
1382
  # @option options [String] :storage_class
1367
1383
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
1368
1384
  # created objects. The STANDARD storage class provides high durability
@@ -1413,9 +1429,9 @@ module Aws::S3
1413
1429
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
1414
1430
  # ensure that the encryption key was transmitted without error.
1415
1431
  # @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
1432
+ # If `x-amz-server-side-encryption` has a valid value of `aws:kms`, this
1433
+ # header specifies the ID of the Amazon Web Services Key Management
1434
+ # Service (Amazon Web Services KMS) symmetric encryption customer
1419
1435
  # managed key that was used for the object. If you specify
1420
1436
  # `x-amz-server-side-encryption:aws:kms`, but do not provide`
1421
1437
  # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
@@ -1425,7 +1441,10 @@ module Aws::S3
1425
1441
  # @option options [String] :ssekms_encryption_context
1426
1442
  # Specifies the Amazon Web Services KMS Encryption Context to use for
1427
1443
  # object encryption. The value of this header is a base64-encoded UTF-8
1428
- # string holding JSON with the encryption context key-value pairs.
1444
+ # string holding JSON with the encryption context key-value pairs. This
1445
+ # value is stored as object metadata and automatically gets passed on to
1446
+ # Amazon Web Services KMS for future `GetObject` or `CopyObject`
1447
+ # operations on this object.
1429
1448
  # @option options [Boolean] :bucket_key_enabled
1430
1449
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1431
1450
  # encryption with server-side encryption using AWS KMS (SSE-KMS).
@@ -1469,7 +1488,9 @@ module Aws::S3
1469
1488
  bucket: @bucket_name,
1470
1489
  key: @key
1471
1490
  )
1472
- resp = @client.put_object(options)
1491
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1492
+ @client.put_object(options)
1493
+ end
1473
1494
  resp.data
1474
1495
  end
1475
1496
 
@@ -1602,7 +1623,9 @@ module Aws::S3
1602
1623
  bucket: @bucket_name,
1603
1624
  key: @key
1604
1625
  )
1605
- resp = @client.restore_object(options)
1626
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1627
+ @client.restore_object(options)
1628
+ end
1606
1629
  resp.data
1607
1630
  end
1608
1631
 
@@ -1637,8 +1660,10 @@ module Aws::S3
1637
1660
  # Return the object only if it has not been modified since the specified
1638
1661
  # time; otherwise, return a 412 (precondition failed) error.
1639
1662
  # @option options [String] :range
1640
- # Because `HeadObject` returns only the metadata for an object, this
1641
- # parameter has no effect.
1663
+ # HeadObject returns only the metadata for an object. If the Range is
1664
+ # satisfiable, only the `ContentLength` is affected in the response. If
1665
+ # the Range is not satisfiable, S3 returns a `416 - Requested Range Not
1666
+ # Satisfiable` error.
1642
1667
  # @option options [String] :version_id
1643
1668
  # VersionId used to reference a specific version of the object.
1644
1669
  # @option options [String] :sse_customer_algorithm
@@ -1686,7 +1711,9 @@ module Aws::S3
1686
1711
  bucket: @bucket_name,
1687
1712
  key: @key
1688
1713
  )
1689
- resp = @client.head_object(options)
1714
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1715
+ @client.head_object(options)
1716
+ end
1690
1717
  resp.data
1691
1718
  end
1692
1719
 
@@ -1859,7 +1886,9 @@ module Aws::S3
1859
1886
  key: item.key
1860
1887
  }
1861
1888
  end
1862
- batch[0].client.delete_objects(params)
1889
+ Aws::Plugins::UserAgent.feature('resource') do
1890
+ batch[0].client.delete_objects(params)
1891
+ end
1863
1892
  end
1864
1893
  nil
1865
1894
  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
@@ -314,7 +318,9 @@ module Aws::S3
314
318
  bucket: @bucket_name,
315
319
  key: @object_key
316
320
  )
317
- resp = @client.put_object_acl(options)
321
+ resp = Aws::Plugins::UserAgent.feature('resource') do
322
+ @client.put_object_acl(options)
323
+ end
318
324
  resp.data
319
325
  end
320
326
 
@@ -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
 
@@ -152,8 +152,10 @@ module Aws::S3
152
152
  options, params = separate_params_and_options(options)
153
153
  waiter = Waiters::ObjectExists.new(options)
154
154
  yield_waiter_and_warn(waiter, &block) if block_given?
155
- waiter.wait(params.merge(bucket: @bucket_name,
155
+ Aws::Plugins::UserAgent.feature('resource') do
156
+ waiter.wait(params.merge(bucket: @bucket_name,
156
157
  key: @key))
158
+ end
157
159
  ObjectSummary.new({
158
160
  bucket_name: @bucket_name,
159
161
  key: @key,
@@ -171,8 +173,10 @@ module Aws::S3
171
173
  options, params = separate_params_and_options(options)
172
174
  waiter = Waiters::ObjectNotExists.new(options)
173
175
  yield_waiter_and_warn(waiter, &block) if block_given?
174
- waiter.wait(params.merge(bucket: @bucket_name,
176
+ Aws::Plugins::UserAgent.feature('resource') do
177
+ waiter.wait(params.merge(bucket: @bucket_name,
175
178
  key: @key))
179
+ end
176
180
  ObjectSummary.new({
177
181
  bucket_name: @bucket_name,
178
182
  key: @key,
@@ -274,7 +278,9 @@ module Aws::S3
274
278
  :retry
275
279
  end
276
280
  end
277
- Aws::Waiters::Waiter.new(options).wait({})
281
+ Aws::Plugins::UserAgent.feature('resource') do
282
+ Aws::Waiters::Waiter.new(options).wait({})
283
+ end
278
284
  end
279
285
 
280
286
  # @!group Actions
@@ -434,7 +440,7 @@ module Aws::S3
434
440
  # or replaced with tag-set provided in the request.
435
441
  # @option options [String] :server_side_encryption
436
442
  # The server-side encryption algorithm used when storing this object in
437
- # Amazon S3 (for example, AES256, aws:kms).
443
+ # Amazon S3 (for example, AES256, `aws:kms`).
438
444
  # @option options [String] :storage_class
439
445
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
440
446
  # created objects. The STANDARD storage class provides high durability
@@ -449,7 +455,10 @@ module Aws::S3
449
455
  # @option options [String] :website_redirect_location
450
456
  # If the bucket is configured as a website, redirects requests for this
451
457
  # object to another object in the same bucket or to an external URL.
452
- # Amazon S3 stores the value of this header in the object metadata.
458
+ # Amazon S3 stores the value of this header in the object metadata. This
459
+ # value is unique to each object and is not copied when using the
460
+ # `x-amz-metadata-directive` header. Instead, you may opt to provide
461
+ # this header in combination with the directive.
453
462
  # @option options [String] :sse_customer_algorithm
454
463
  # Specifies the algorithm to use to when encrypting the object (for
455
464
  # example, AES256).
@@ -533,7 +542,9 @@ module Aws::S3
533
542
  bucket: @bucket_name,
534
543
  key: @key
535
544
  )
536
- resp = @client.copy_object(options)
545
+ resp = Aws::Plugins::UserAgent.feature('resource') do
546
+ @client.copy_object(options)
547
+ end
537
548
  resp.data
538
549
  end
539
550
 
@@ -578,7 +589,9 @@ module Aws::S3
578
589
  bucket: @bucket_name,
579
590
  key: @key
580
591
  )
581
- resp = @client.delete_object(options)
592
+ resp = Aws::Plugins::UserAgent.feature('resource') do
593
+ @client.delete_object(options)
594
+ end
582
595
  resp.data
583
596
  end
584
597
 
@@ -621,7 +634,7 @@ module Aws::S3
621
634
  # @option options [String] :range
622
635
  # Downloads the specified range bytes of an object. For more information
623
636
  # about the HTTP Range header, see
624
- # [https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35][1].
637
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#name-range][1].
625
638
  #
626
639
  # <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
627
640
  # `GET` request.
@@ -630,7 +643,7 @@ module Aws::S3
630
643
  #
631
644
  #
632
645
  #
633
- # [1]: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
646
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-range
634
647
  # @option options [String] :response_cache_control
635
648
  # Sets the `Cache-Control` header of the response.
636
649
  # @option options [String] :response_content_disposition
@@ -685,7 +698,9 @@ module Aws::S3
685
698
  bucket: @bucket_name,
686
699
  key: @key
687
700
  )
688
- resp = @client.get_object(options, &block)
701
+ resp = Aws::Plugins::UserAgent.feature('resource') do
702
+ @client.get_object(options, &block)
703
+ end
689
704
  resp.data
690
705
  end
691
706
 
@@ -763,7 +778,7 @@ module Aws::S3
763
778
  # A map of metadata to store with the object in S3.
764
779
  # @option options [String] :server_side_encryption
765
780
  # The server-side encryption algorithm used when storing this object in
766
- # Amazon S3 (for example, AES256, aws:kms).
781
+ # Amazon S3 (for example, AES256, `aws:kms`).
767
782
  # @option options [String] :storage_class
768
783
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
769
784
  # created objects. The STANDARD storage class provides high durability
@@ -793,13 +808,13 @@ module Aws::S3
793
808
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
794
809
  # ensure that the encryption key was transmitted without error.
795
810
  # @option options [String] :ssekms_key_id
796
- # Specifies the ID of the symmetric customer managed key to use for
797
- # object encryption. All GET and PUT requests for an object protected by
798
- # Amazon Web Services KMS will fail if not made via SSL or using SigV4.
799
- # For information about configuring using any of the officially
800
- # supported Amazon Web Services SDKs and Amazon Web Services CLI, see
801
- # [Specifying the Signature Version in Request Authentication][1] in the
802
- # *Amazon S3 User Guide*.
811
+ # Specifies the ID of the symmetric encryption customer managed key to
812
+ # use for object encryption. All GET and PUT requests for an object
813
+ # protected by Amazon Web Services KMS will fail if not made via SSL or
814
+ # using SigV4. For information about configuring using any of the
815
+ # officially supported Amazon Web Services SDKs and Amazon Web Services
816
+ # CLI, see [Specifying the Signature Version in Request
817
+ # Authentication][1] in the *Amazon S3 User Guide*.
803
818
  #
804
819
  #
805
820
  #
@@ -855,7 +870,9 @@ module Aws::S3
855
870
  bucket: @bucket_name,
856
871
  key: @key
857
872
  )
858
- resp = @client.create_multipart_upload(options)
873
+ resp = Aws::Plugins::UserAgent.feature('resource') do
874
+ @client.create_multipart_upload(options)
875
+ end
859
876
  MultipartUpload.new(
860
877
  bucket_name: @bucket_name,
861
878
  object_key: @key,
@@ -928,30 +945,30 @@ module Aws::S3
928
945
  # @option options [String] :content_disposition
929
946
  # Specifies presentational information for the object. For more
930
947
  # information, see
931
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1][1].
948
+ # [https://www.rfc-editor.org/rfc/rfc6266#section-4][1].
932
949
  #
933
950
  #
934
951
  #
935
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1
952
+ # [1]: https://www.rfc-editor.org/rfc/rfc6266#section-4
936
953
  # @option options [String] :content_encoding
937
954
  # Specifies what content encodings have been applied to the object and
938
955
  # thus what decoding mechanisms must be applied to obtain the media-type
939
956
  # referenced by the Content-Type header field. For more information, see
940
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11][1].
957
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding][1].
941
958
  #
942
959
  #
943
960
  #
944
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11
961
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding
945
962
  # @option options [String] :content_language
946
963
  # The language the content is in.
947
964
  # @option options [Integer] :content_length
948
965
  # Size of the body in bytes. This parameter is useful when the size of
949
966
  # the body cannot be determined automatically. For more information, see
950
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13][1].
967
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length][1].
951
968
  #
952
969
  #
953
970
  #
954
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13
971
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length
955
972
  # @option options [String] :content_md5
956
973
  # The base64-encoded 128-bit MD5 digest of the message (without the
957
974
  # headers) according to RFC 1864. This header can be used as a message
@@ -967,11 +984,11 @@ module Aws::S3
967
984
  # @option options [String] :content_type
968
985
  # A standard MIME type describing the format of the contents. For more
969
986
  # information, see
970
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17][1].
987
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type][1].
971
988
  #
972
989
  #
973
990
  #
974
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17
991
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type
975
992
  # @option options [String] :checksum_algorithm
976
993
  # Indicates the algorithm used to create the checksum for the object
977
994
  # when using the SDK. This header will not provide any additional
@@ -1030,11 +1047,11 @@ module Aws::S3
1030
1047
  # @option options [Time,DateTime,Date,Integer,String] :expires
1031
1048
  # The date and time at which the object is no longer cacheable. For more
1032
1049
  # information, see
1033
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21][1].
1050
+ # [https://www.rfc-editor.org/rfc/rfc7234#section-5.3][1].
1034
1051
  #
1035
1052
  #
1036
1053
  #
1037
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21
1054
+ # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
1038
1055
  # @option options [String] :grant_full_control
1039
1056
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
1040
1057
  # object.
@@ -1056,7 +1073,7 @@ module Aws::S3
1056
1073
  # A map of metadata to store with the object in S3.
1057
1074
  # @option options [String] :server_side_encryption
1058
1075
  # The server-side encryption algorithm used when storing this object in
1059
- # Amazon S3 (for example, AES256, aws:kms).
1076
+ # Amazon S3 (for example, AES256, `aws:kms`).
1060
1077
  # @option options [String] :storage_class
1061
1078
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
1062
1079
  # created objects. The STANDARD storage class provides high durability
@@ -1107,9 +1124,9 @@ module Aws::S3
1107
1124
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
1108
1125
  # ensure that the encryption key was transmitted without error.
1109
1126
  # @option options [String] :ssekms_key_id
1110
- # If `x-amz-server-side-encryption` is present and has the value of
1111
- # `aws:kms`, this header specifies the ID of the Amazon Web Services Key
1112
- # Management Service (Amazon Web Services KMS) symmetrical customer
1127
+ # If `x-amz-server-side-encryption` has a valid value of `aws:kms`, this
1128
+ # header specifies the ID of the Amazon Web Services Key Management
1129
+ # Service (Amazon Web Services KMS) symmetric encryption customer
1113
1130
  # managed key that was used for the object. If you specify
1114
1131
  # `x-amz-server-side-encryption:aws:kms`, but do not provide`
1115
1132
  # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
@@ -1119,7 +1136,10 @@ module Aws::S3
1119
1136
  # @option options [String] :ssekms_encryption_context
1120
1137
  # Specifies the Amazon Web Services KMS Encryption Context to use for
1121
1138
  # object encryption. The value of this header is a base64-encoded UTF-8
1122
- # string holding JSON with the encryption context key-value pairs.
1139
+ # string holding JSON with the encryption context key-value pairs. This
1140
+ # value is stored as object metadata and automatically gets passed on to
1141
+ # Amazon Web Services KMS for future `GetObject` or `CopyObject`
1142
+ # operations on this object.
1123
1143
  # @option options [Boolean] :bucket_key_enabled
1124
1144
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1125
1145
  # encryption with server-side encryption using AWS KMS (SSE-KMS).
@@ -1163,7 +1183,9 @@ module Aws::S3
1163
1183
  bucket: @bucket_name,
1164
1184
  key: @key
1165
1185
  )
1166
- resp = @client.put_object(options)
1186
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1187
+ @client.put_object(options)
1188
+ end
1167
1189
  resp.data
1168
1190
  end
1169
1191
 
@@ -1296,7 +1318,9 @@ module Aws::S3
1296
1318
  bucket: @bucket_name,
1297
1319
  key: @key
1298
1320
  )
1299
- resp = @client.restore_object(options)
1321
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1322
+ @client.restore_object(options)
1323
+ end
1300
1324
  resp.data
1301
1325
  end
1302
1326
 
@@ -1478,7 +1502,9 @@ module Aws::S3
1478
1502
  key: item.key
1479
1503
  }
1480
1504
  end
1481
- batch[0].client.delete_objects(params)
1505
+ Aws::Plugins::UserAgent.feature('resource') do
1506
+ batch[0].client.delete_objects(params)
1507
+ end
1482
1508
  end
1483
1509
  nil
1484
1510
  end