aws-sdk-s3 1.109.0 → 1.156.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 (100) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +352 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/access_grants_credentials.rb +57 -0
  5. data/lib/aws-sdk-s3/access_grants_credentials_provider.rb +241 -0
  6. data/lib/aws-sdk-s3/bucket.rb +585 -110
  7. data/lib/aws-sdk-s3/bucket_acl.rb +28 -6
  8. data/lib/aws-sdk-s3/bucket_cors.rb +34 -10
  9. data/lib/aws-sdk-s3/bucket_lifecycle.rb +34 -10
  10. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +34 -10
  11. data/lib/aws-sdk-s3/bucket_logging.rb +35 -6
  12. data/lib/aws-sdk-s3/bucket_notification.rb +12 -6
  13. data/lib/aws-sdk-s3/bucket_policy.rb +78 -10
  14. data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
  15. data/lib/aws-sdk-s3/bucket_request_payment.rb +28 -6
  16. data/lib/aws-sdk-s3/bucket_tagging.rb +34 -10
  17. data/lib/aws-sdk-s3/bucket_versioning.rb +72 -14
  18. data/lib/aws-sdk-s3/bucket_website.rb +34 -10
  19. data/lib/aws-sdk-s3/client.rb +7900 -3252
  20. data/lib/aws-sdk-s3/client_api.rb +706 -228
  21. data/lib/aws-sdk-s3/customizations/bucket.rb +23 -47
  22. data/lib/aws-sdk-s3/customizations/errors.rb +40 -0
  23. data/lib/aws-sdk-s3/customizations/object.rb +97 -21
  24. data/lib/aws-sdk-s3/customizations/types/permanent_redirect.rb +26 -0
  25. data/lib/aws-sdk-s3/customizations.rb +10 -0
  26. data/lib/aws-sdk-s3/encryption/client.rb +6 -2
  27. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +13 -9
  28. data/lib/aws-sdk-s3/encryptionV2/client.rb +6 -2
  29. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +1 -0
  30. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -6
  31. data/lib/aws-sdk-s3/endpoint_parameters.rb +186 -0
  32. data/lib/aws-sdk-s3/endpoint_provider.rb +592 -0
  33. data/lib/aws-sdk-s3/endpoints.rb +2689 -0
  34. data/lib/aws-sdk-s3/express_credentials.rb +55 -0
  35. data/lib/aws-sdk-s3/express_credentials_provider.rb +59 -0
  36. data/lib/aws-sdk-s3/file_downloader.rb +170 -45
  37. data/lib/aws-sdk-s3/file_uploader.rb +11 -4
  38. data/lib/aws-sdk-s3/multipart_file_uploader.rb +30 -11
  39. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +46 -17
  40. data/lib/aws-sdk-s3/multipart_upload.rb +194 -19
  41. data/lib/aws-sdk-s3/multipart_upload_part.rb +280 -30
  42. data/lib/aws-sdk-s3/object.rb +1753 -266
  43. data/lib/aws-sdk-s3/object_acl.rb +49 -13
  44. data/lib/aws-sdk-s3/object_copier.rb +7 -5
  45. data/lib/aws-sdk-s3/object_multipart_copier.rb +46 -22
  46. data/lib/aws-sdk-s3/object_summary.rb +1497 -221
  47. data/lib/aws-sdk-s3/object_version.rb +383 -58
  48. data/lib/aws-sdk-s3/plugins/accelerate.rb +3 -50
  49. data/lib/aws-sdk-s3/plugins/access_grants.rb +114 -0
  50. data/lib/aws-sdk-s3/plugins/arn.rb +0 -184
  51. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +3 -39
  52. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -6
  53. data/lib/aws-sdk-s3/plugins/dualstack.rb +1 -49
  54. data/lib/aws-sdk-s3/plugins/endpoints.rb +274 -0
  55. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +2 -1
  56. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +97 -0
  57. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +53 -16
  58. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +6 -29
  59. data/lib/aws-sdk-s3/plugins/location_constraint.rb +3 -1
  60. data/lib/aws-sdk-s3/plugins/md5s.rb +6 -3
  61. data/lib/aws-sdk-s3/plugins/s3_signer.rb +42 -126
  62. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +31 -0
  63. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +23 -2
  64. data/lib/aws-sdk-s3/presigned_post.rb +99 -78
  65. data/lib/aws-sdk-s3/presigner.rb +28 -37
  66. data/lib/aws-sdk-s3/resource.rb +89 -13
  67. data/lib/aws-sdk-s3/types.rb +6544 -4909
  68. data/lib/aws-sdk-s3.rb +5 -1
  69. data/sig/bucket.rbs +212 -0
  70. data/sig/bucket_acl.rbs +78 -0
  71. data/sig/bucket_cors.rbs +69 -0
  72. data/sig/bucket_lifecycle.rbs +88 -0
  73. data/sig/bucket_lifecycle_configuration.rbs +111 -0
  74. data/sig/bucket_logging.rbs +76 -0
  75. data/sig/bucket_notification.rbs +114 -0
  76. data/sig/bucket_policy.rbs +59 -0
  77. data/sig/bucket_request_payment.rbs +54 -0
  78. data/sig/bucket_tagging.rbs +65 -0
  79. data/sig/bucket_versioning.rbs +77 -0
  80. data/sig/bucket_website.rbs +93 -0
  81. data/sig/client.rbs +2381 -0
  82. data/sig/customizations/bucket.rbs +19 -0
  83. data/sig/customizations/object.rbs +38 -0
  84. data/sig/customizations/object_summary.rbs +35 -0
  85. data/sig/errors.rbs +34 -0
  86. data/sig/multipart_upload.rbs +110 -0
  87. data/sig/multipart_upload_part.rbs +105 -0
  88. data/sig/object.rbs +442 -0
  89. data/sig/object_acl.rbs +86 -0
  90. data/sig/object_summary.rbs +334 -0
  91. data/sig/object_version.rbs +137 -0
  92. data/sig/resource.rbs +127 -0
  93. data/sig/types.rbs +2568 -0
  94. data/sig/waiters.rbs +95 -0
  95. metadata +50 -16
  96. data/lib/aws-sdk-s3/arn/access_point_arn.rb +0 -69
  97. data/lib/aws-sdk-s3/arn/multi_region_access_point_arn.rb +0 -68
  98. data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +0 -69
  99. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +0 -74
  100. data/lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb +0 -25
@@ -76,6 +76,68 @@ module Aws::S3
76
76
  data[:size]
77
77
  end
78
78
 
79
+ # This header can be used as a data integrity check to verify that the
80
+ # data received is the same data that was originally sent. This header
81
+ # specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
82
+ # more information, see [Checking object integrity][1] in the *Amazon S3
83
+ # User Guide*.
84
+ #
85
+ #
86
+ #
87
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
88
+ # @return [String]
89
+ def checksum_crc32
90
+ data[:checksum_crc32]
91
+ end
92
+
93
+ # The base64-encoded, 32-bit CRC32C checksum of the object. This will
94
+ # only be present if it was uploaded with the object. When you use an
95
+ # API operation on an object that was uploaded using multipart uploads,
96
+ # this value may not be a direct checksum value of the full object.
97
+ # Instead, it's a calculation based on the checksum values of each
98
+ # individual part. For more information about how checksums are
99
+ # calculated with multipart uploads, see [ Checking object integrity][1]
100
+ # in the *Amazon S3 User Guide*.
101
+ #
102
+ #
103
+ #
104
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums
105
+ # @return [String]
106
+ def checksum_crc32c
107
+ data[:checksum_crc32c]
108
+ end
109
+
110
+ # The base64-encoded, 160-bit SHA-1 digest of the object. This will only
111
+ # be present if it was uploaded with the object. When you use the API
112
+ # operation on an object that was uploaded using multipart uploads, this
113
+ # value may not be a direct checksum value of the full object. Instead,
114
+ # it's a calculation based on the checksum values of each individual
115
+ # part. For more information about how checksums are calculated with
116
+ # multipart uploads, see [ Checking object integrity][1] in the *Amazon
117
+ # S3 User Guide*.
118
+ #
119
+ #
120
+ #
121
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums
122
+ # @return [String]
123
+ def checksum_sha1
124
+ data[:checksum_sha1]
125
+ end
126
+
127
+ # This header can be used as a data integrity check to verify that the
128
+ # data received is the same data that was originally sent. This header
129
+ # specifies the base64-encoded, 256-bit SHA-256 digest of the object.
130
+ # For more information, see [Checking object integrity][1] in the
131
+ # *Amazon S3 User Guide*.
132
+ #
133
+ #
134
+ #
135
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
136
+ # @return [String]
137
+ def checksum_sha256
138
+ data[:checksum_sha256]
139
+ end
140
+
79
141
  # @!endgroup
80
142
 
81
143
  # @return [Client]
@@ -200,7 +262,9 @@ module Aws::S3
200
262
  :retry
201
263
  end
202
264
  end
203
- Aws::Waiters::Waiter.new(options).wait({})
265
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
266
+ Aws::Waiters::Waiter.new(options).wait({})
267
+ end
204
268
  end
205
269
 
206
270
  # @!group Actions
@@ -228,14 +292,14 @@ module Aws::S3
228
292
  # @option options [required, String] :copy_source
229
293
  # Specifies the source object for the copy operation. You specify the
230
294
  # value in one of two formats, depending on whether you want to access
231
- # the source object through an [access point][1]\:
295
+ # the source object through an [access point][1]:
232
296
  #
233
297
  # * For objects not accessed through an access point, specify the name
234
298
  # of the source bucket and key of the source object, separated by a
235
299
  # slash (/). For example, to copy the object `reports/january.pdf`
236
300
  # from the bucket `awsexamplebucket`, use
237
- # `awsexamplebucket/reports/january.pdf`. The value must be URL
238
- # encoded.
301
+ # `awsexamplebucket/reports/january.pdf`. The value must be
302
+ # URL-encoded.
239
303
  #
240
304
  # * For objects accessed through access points, specify the Amazon
241
305
  # Resource Name (ARN) of the object as accessed through the access
@@ -247,9 +311,11 @@ module Aws::S3
247
311
  # `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`.
248
312
  # The value must be URL encoded.
249
313
  #
250
- # <note markdown="1"> Amazon S3 supports copy operations using access points only when the
251
- # source and destination buckets are in the same Amazon Web Services
252
- # Region.
314
+ # <note markdown="1"> * Amazon S3 supports copy operations using Access points only when
315
+ # the source and destination buckets are in the same Amazon Web
316
+ # Services Region.
317
+ #
318
+ # * Access points are not supported by directory buckets.
253
319
  #
254
320
  # </note>
255
321
  #
@@ -260,27 +326,84 @@ module Aws::S3
260
326
  # outpost `my-outpost` owned by account `123456789012` in Region
261
327
  # `us-west-2`, use the URL encoding of
262
328
  # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
263
- # The value must be URL encoded.
329
+ # The value must be URL-encoded.
330
+ #
331
+ # If your bucket has versioning enabled, you could have multiple
332
+ # versions of the same object. By default, `x-amz-copy-source`
333
+ # identifies the current version of the source object to copy. To copy a
334
+ # specific version of the source object to copy, append
335
+ # `?versionId=<version-id>` to the `x-amz-copy-source` request header
336
+ # (for example, `x-amz-copy-source:
337
+ # /awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
338
+ #
339
+ # If the current version is a delete marker and you don't specify a
340
+ # versionId in the `x-amz-copy-source` request header, Amazon S3 returns
341
+ # a `404 Not Found` error, because the object does not exist. If you
342
+ # specify versionId in the `x-amz-copy-source` and the versionId is a
343
+ # delete marker, Amazon S3 returns an HTTP `400 Bad Request` error,
344
+ # because you are not allowed to specify a delete marker as a version
345
+ # for the `x-amz-copy-source`.
264
346
  #
265
- # To copy a specific version of an object, append
266
- # `?versionId=<version-id>` to the value (for example,
267
- # `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
268
- # If you don't specify a version ID, Amazon S3 copies the latest
269
- # version of the source object.
347
+ # <note markdown="1"> **Directory buckets** - S3 Versioning isn't enabled and supported for
348
+ # directory buckets.
349
+ #
350
+ # </note>
270
351
  #
271
352
  #
272
353
  #
273
354
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html
274
355
  # @option options [String] :copy_source_if_match
275
356
  # Copies the object if its entity tag (ETag) matches the specified tag.
357
+ #
358
+ # If both of the `x-amz-copy-source-if-match` and
359
+ # `x-amz-copy-source-if-unmodified-since` headers are present in the
360
+ # request as follows:
361
+ #
362
+ # `x-amz-copy-source-if-match` condition evaluates to `true`, and;
363
+ #
364
+ # `x-amz-copy-source-if-unmodified-since` condition evaluates to
365
+ # `false`;
366
+ #
367
+ # Amazon S3 returns `200 OK` and copies the data.
276
368
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
277
369
  # Copies the object if it has been modified since the specified time.
370
+ #
371
+ # If both of the `x-amz-copy-source-if-none-match` and
372
+ # `x-amz-copy-source-if-modified-since` headers are present in the
373
+ # request as follows:
374
+ #
375
+ # `x-amz-copy-source-if-none-match` condition evaluates to `false`, and;
376
+ #
377
+ # `x-amz-copy-source-if-modified-since` condition evaluates to `true`;
378
+ #
379
+ # Amazon S3 returns `412 Precondition Failed` response code.
278
380
  # @option options [String] :copy_source_if_none_match
279
381
  # Copies the object if its entity tag (ETag) is different than the
280
382
  # specified ETag.
383
+ #
384
+ # If both of the `x-amz-copy-source-if-none-match` and
385
+ # `x-amz-copy-source-if-modified-since` headers are present in the
386
+ # request as follows:
387
+ #
388
+ # `x-amz-copy-source-if-none-match` condition evaluates to `false`, and;
389
+ #
390
+ # `x-amz-copy-source-if-modified-since` condition evaluates to `true`;
391
+ #
392
+ # Amazon S3 returns `412 Precondition Failed` response code.
281
393
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_unmodified_since
282
394
  # Copies the object if it hasn't been modified since the specified
283
395
  # time.
396
+ #
397
+ # If both of the `x-amz-copy-source-if-match` and
398
+ # `x-amz-copy-source-if-unmodified-since` headers are present in the
399
+ # request as follows:
400
+ #
401
+ # `x-amz-copy-source-if-match` condition evaluates to `true`, and;
402
+ #
403
+ # `x-amz-copy-source-if-unmodified-since` condition evaluates to
404
+ # `false`;
405
+ #
406
+ # Amazon S3 returns `200 OK` and copies the data.
284
407
  # @option options [String] :copy_source_range
285
408
  # The range of bytes to copy from the source object. The range value
286
409
  # must use the form bytes=first-last, where the first and last are the
@@ -288,8 +411,13 @@ module Aws::S3
288
411
  # you want to copy the first 10 bytes of the source. You can copy a
289
412
  # range only if the source object is greater than 5 MB.
290
413
  # @option options [String] :sse_customer_algorithm
291
- # Specifies the algorithm to use to when encrypting the object (for
414
+ # Specifies the algorithm to use when encrypting the object (for
292
415
  # example, AES256).
416
+ #
417
+ # <note markdown="1"> This functionality is not supported when the destination bucket is a
418
+ # directory bucket.
419
+ #
420
+ # </note>
293
421
  # @option options [String] :sse_customer_key
294
422
  # Specifies the customer-provided encryption key for Amazon S3 to use in
295
423
  # encrypting data. This value is used to store the object and then it is
@@ -298,39 +426,72 @@ module Aws::S3
298
426
  # `x-amz-server-side-encryption-customer-algorithm` header. This must be
299
427
  # the same encryption key specified in the initiate multipart upload
300
428
  # request.
429
+ #
430
+ # <note markdown="1"> This functionality is not supported when the destination bucket is a
431
+ # directory bucket.
432
+ #
433
+ # </note>
301
434
  # @option options [String] :sse_customer_key_md5
302
435
  # Specifies the 128-bit MD5 digest of the encryption key according to
303
436
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
304
437
  # ensure that the encryption key was transmitted without error.
438
+ #
439
+ # <note markdown="1"> This functionality is not supported when the destination bucket is a
440
+ # directory bucket.
441
+ #
442
+ # </note>
305
443
  # @option options [String] :copy_source_sse_customer_algorithm
306
444
  # Specifies the algorithm to use when decrypting the source object (for
307
- # example, AES256).
445
+ # example, `AES256`).
446
+ #
447
+ # <note markdown="1"> This functionality is not supported when the source object is in a
448
+ # directory bucket.
449
+ #
450
+ # </note>
308
451
  # @option options [String] :copy_source_sse_customer_key
309
452
  # Specifies the customer-provided encryption key for Amazon S3 to use to
310
453
  # decrypt the source object. The encryption key provided in this header
311
454
  # must be one that was used when the source object was created.
455
+ #
456
+ # <note markdown="1"> This functionality is not supported when the source object is in a
457
+ # directory bucket.
458
+ #
459
+ # </note>
312
460
  # @option options [String] :copy_source_sse_customer_key_md5
313
461
  # Specifies the 128-bit MD5 digest of the encryption key according to
314
462
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
315
463
  # ensure that the encryption key was transmitted without error.
464
+ #
465
+ # <note markdown="1"> This functionality is not supported when the source object is in a
466
+ # directory bucket.
467
+ #
468
+ # </note>
316
469
  # @option options [String] :request_payer
317
470
  # Confirms that the requester knows that they will be charged for the
318
471
  # request. Bucket owners need not specify this parameter in their
319
- # requests. For information about downloading objects from requester
320
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
472
+ # requests. If either the source or destination S3 bucket has Requester
473
+ # Pays enabled, the requester will pay for corresponding charges to copy
474
+ # the object. For information about downloading objects from Requester
475
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
321
476
  # in the *Amazon S3 User Guide*.
322
477
  #
478
+ # <note markdown="1"> This functionality is not supported for directory buckets.
479
+ #
480
+ # </note>
481
+ #
323
482
  #
324
483
  #
325
484
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
326
485
  # @option options [String] :expected_bucket_owner
327
486
  # The account ID of the expected destination bucket owner. If the
328
- # destination bucket is owned by a different account, the request will
329
- # fail with an HTTP `403 (Access Denied)` error.
487
+ # account ID that you provide does not match the actual owner of the
488
+ # destination bucket, the request fails with the HTTP status code `403
489
+ # Forbidden` (access denied).
330
490
  # @option options [String] :expected_source_bucket_owner
331
- # The account ID of the expected source bucket owner. If the source
332
- # bucket is owned by a different account, the request will fail with an
333
- # HTTP `403 (Access Denied)` error.
491
+ # The account ID of the expected source bucket owner. If the account ID
492
+ # that you provide does not match the actual owner of the source bucket,
493
+ # the request fails with the HTTP status code `403 Forbidden` (access
494
+ # denied).
334
495
  # @return [Types::UploadPartCopyOutput]
335
496
  def copy_from(options = {})
336
497
  options = options.merge(
@@ -339,7 +500,9 @@ module Aws::S3
339
500
  upload_id: @multipart_upload_id,
340
501
  part_number: @part_number
341
502
  )
342
- resp = @client.upload_part_copy(options)
503
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
504
+ @client.upload_part_copy(options)
505
+ end
343
506
  resp.data
344
507
  end
345
508
 
@@ -349,6 +512,11 @@ module Aws::S3
349
512
  # body: source_file,
350
513
  # content_length: 1,
351
514
  # content_md5: "ContentMD5",
515
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
516
+ # checksum_crc32: "ChecksumCRC32",
517
+ # checksum_crc32c: "ChecksumCRC32C",
518
+ # checksum_sha1: "ChecksumSHA1",
519
+ # checksum_sha256: "ChecksumSHA256",
352
520
  # sse_customer_algorithm: "SSECustomerAlgorithm",
353
521
  # sse_customer_key: "SSECustomerKey",
354
522
  # sse_customer_key_md5: "SSECustomerKeyMD5",
@@ -365,9 +533,75 @@ module Aws::S3
365
533
  # The base64-encoded 128-bit MD5 digest of the part data. This parameter
366
534
  # is auto-populated when using the command from the CLI. This parameter
367
535
  # is required if object lock parameters are specified.
536
+ #
537
+ # <note markdown="1"> This functionality is not supported for directory buckets.
538
+ #
539
+ # </note>
540
+ # @option options [String] :checksum_algorithm
541
+ # Indicates the algorithm used to create the checksum for the object
542
+ # when you use the SDK. This header will not provide any additional
543
+ # functionality if you don't use the SDK. When you send this header,
544
+ # there must be a corresponding `x-amz-checksum` or `x-amz-trailer`
545
+ # header sent. Otherwise, Amazon S3 fails the request with the HTTP
546
+ # status code `400 Bad Request`. For more information, see [Checking
547
+ # object integrity][1] in the *Amazon S3 User Guide*.
548
+ #
549
+ # If you provide an individual checksum, Amazon S3 ignores any provided
550
+ # `ChecksumAlgorithm` parameter.
551
+ #
552
+ # This checksum algorithm must be the same for all parts and it match
553
+ # the checksum value supplied in the `CreateMultipartUpload` request.
554
+ #
555
+ #
556
+ #
557
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
558
+ # @option options [String] :checksum_crc32
559
+ # This header can be used as a data integrity check to verify that the
560
+ # data received is the same data that was originally sent. This header
561
+ # specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
562
+ # more information, see [Checking object integrity][1] in the *Amazon S3
563
+ # User Guide*.
564
+ #
565
+ #
566
+ #
567
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
568
+ # @option options [String] :checksum_crc32c
569
+ # This header can be used as a data integrity check to verify that the
570
+ # data received is the same data that was originally sent. This header
571
+ # specifies the base64-encoded, 32-bit CRC32C checksum of the object.
572
+ # For more information, see [Checking object integrity][1] in the
573
+ # *Amazon S3 User Guide*.
574
+ #
575
+ #
576
+ #
577
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
578
+ # @option options [String] :checksum_sha1
579
+ # This header can be used as a data integrity check to verify that the
580
+ # data received is the same data that was originally sent. This header
581
+ # specifies the base64-encoded, 160-bit SHA-1 digest of the object. For
582
+ # more information, see [Checking object integrity][1] in the *Amazon S3
583
+ # User Guide*.
584
+ #
585
+ #
586
+ #
587
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
588
+ # @option options [String] :checksum_sha256
589
+ # This header can be used as a data integrity check to verify that the
590
+ # data received is the same data that was originally sent. This header
591
+ # specifies the base64-encoded, 256-bit SHA-256 digest of the object.
592
+ # For more information, see [Checking object integrity][1] in the
593
+ # *Amazon S3 User Guide*.
594
+ #
595
+ #
596
+ #
597
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
368
598
  # @option options [String] :sse_customer_algorithm
369
- # Specifies the algorithm to use to when encrypting the object (for
599
+ # Specifies the algorithm to use when encrypting the object (for
370
600
  # example, AES256).
601
+ #
602
+ # <note markdown="1"> This functionality is not supported for directory buckets.
603
+ #
604
+ # </note>
371
605
  # @option options [String] :sse_customer_key
372
606
  # Specifies the customer-provided encryption key for Amazon S3 to use in
373
607
  # encrypting data. This value is used to store the object and then it is
@@ -376,24 +610,38 @@ module Aws::S3
376
610
  # `x-amz-server-side-encryption-customer-algorithm header`. This must be
377
611
  # the same encryption key specified in the initiate multipart upload
378
612
  # request.
613
+ #
614
+ # <note markdown="1"> This functionality is not supported for directory buckets.
615
+ #
616
+ # </note>
379
617
  # @option options [String] :sse_customer_key_md5
380
618
  # Specifies the 128-bit MD5 digest of the encryption key according to
381
619
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
382
620
  # ensure that the encryption key was transmitted without error.
621
+ #
622
+ # <note markdown="1"> This functionality is not supported for directory buckets.
623
+ #
624
+ # </note>
383
625
  # @option options [String] :request_payer
384
626
  # Confirms that the requester knows that they will be charged for the
385
627
  # request. Bucket owners need not specify this parameter in their
386
- # requests. For information about downloading objects from requester
387
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
628
+ # requests. If either the source or destination S3 bucket has Requester
629
+ # Pays enabled, the requester will pay for corresponding charges to copy
630
+ # the object. For information about downloading objects from Requester
631
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
388
632
  # in the *Amazon S3 User Guide*.
389
633
  #
634
+ # <note markdown="1"> This functionality is not supported for directory buckets.
635
+ #
636
+ # </note>
637
+ #
390
638
  #
391
639
  #
392
640
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
393
641
  # @option options [String] :expected_bucket_owner
394
- # The account ID of the expected bucket owner. If the bucket is owned by
395
- # a different account, the request will fail with an HTTP `403 (Access
396
- # Denied)` error.
642
+ # The account ID of the expected bucket owner. If the account ID that
643
+ # you provide does not match the actual owner of the bucket, the request
644
+ # fails with the HTTP status code `403 Forbidden` (access denied).
397
645
  # @return [Types::UploadPartOutput]
398
646
  def upload(options = {})
399
647
  options = options.merge(
@@ -402,7 +650,9 @@ module Aws::S3
402
650
  upload_id: @multipart_upload_id,
403
651
  part_number: @part_number
404
652
  )
405
- resp = @client.upload_part(options)
653
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
654
+ @client.upload_part(options)
655
+ end
406
656
  resp.data
407
657
  end
408
658