aws-sdk-s3 1.103.0 → 1.202.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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +664 -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 +250 -0
  6. data/lib/aws-sdk-s3/bucket.rb +858 -116
  7. data/lib/aws-sdk-s3/bucket_acl.rb +32 -9
  8. data/lib/aws-sdk-s3/bucket_cors.rb +38 -13
  9. data/lib/aws-sdk-s3/bucket_lifecycle.rb +43 -12
  10. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +100 -13
  11. data/lib/aws-sdk-s3/bucket_logging.rb +35 -6
  12. data/lib/aws-sdk-s3/bucket_notification.rb +27 -9
  13. data/lib/aws-sdk-s3/bucket_policy.rb +79 -10
  14. data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
  15. data/lib/aws-sdk-s3/bucket_request_payment.rb +29 -7
  16. data/lib/aws-sdk-s3/bucket_tagging.rb +35 -11
  17. data/lib/aws-sdk-s3/bucket_versioning.rb +108 -17
  18. data/lib/aws-sdk-s3/bucket_website.rb +35 -11
  19. data/lib/aws-sdk-s3/client.rb +11799 -3636
  20. data/lib/aws-sdk-s3/client_api.rb +1201 -276
  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 +216 -70
  24. data/lib/aws-sdk-s3/customizations/object_summary.rb +5 -0
  25. data/lib/aws-sdk-s3/customizations/object_version.rb +13 -0
  26. data/lib/aws-sdk-s3/customizations/types/permanent_redirect.rb +26 -0
  27. data/lib/aws-sdk-s3/customizations.rb +27 -29
  28. data/lib/aws-sdk-s3/default_executor.rb +103 -0
  29. data/lib/aws-sdk-s3/encryption/client.rb +6 -2
  30. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +13 -9
  31. data/lib/aws-sdk-s3/encryptionV2/client.rb +6 -2
  32. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +1 -0
  33. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -6
  34. data/lib/aws-sdk-s3/endpoint_parameters.rb +181 -0
  35. data/lib/aws-sdk-s3/endpoint_provider.rb +716 -0
  36. data/lib/aws-sdk-s3/endpoints.rb +1518 -0
  37. data/lib/aws-sdk-s3/errors.rb +58 -0
  38. data/lib/aws-sdk-s3/express_credentials.rb +55 -0
  39. data/lib/aws-sdk-s3/express_credentials_provider.rb +59 -0
  40. data/lib/aws-sdk-s3/file_downloader.rb +241 -87
  41. data/lib/aws-sdk-s3/file_uploader.rb +16 -13
  42. data/lib/aws-sdk-s3/legacy_signer.rb +2 -1
  43. data/lib/aws-sdk-s3/multipart_download_error.rb +8 -0
  44. data/lib/aws-sdk-s3/multipart_file_uploader.rb +108 -86
  45. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +110 -92
  46. data/lib/aws-sdk-s3/multipart_upload.rb +294 -19
  47. data/lib/aws-sdk-s3/multipart_upload_error.rb +3 -4
  48. data/lib/aws-sdk-s3/multipart_upload_part.rb +297 -31
  49. data/lib/aws-sdk-s3/object.rb +2224 -269
  50. data/lib/aws-sdk-s3/object_acl.rb +59 -17
  51. data/lib/aws-sdk-s3/object_copier.rb +7 -5
  52. data/lib/aws-sdk-s3/object_multipart_copier.rb +48 -23
  53. data/lib/aws-sdk-s3/object_summary.rb +1915 -220
  54. data/lib/aws-sdk-s3/object_version.rb +450 -58
  55. data/lib/aws-sdk-s3/plugins/accelerate.rb +3 -44
  56. data/lib/aws-sdk-s3/plugins/access_grants.rb +178 -0
  57. data/lib/aws-sdk-s3/plugins/arn.rb +0 -197
  58. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +3 -39
  59. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -6
  60. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
  61. data/lib/aws-sdk-s3/plugins/dualstack.rb +1 -55
  62. data/lib/aws-sdk-s3/plugins/endpoints.rb +86 -0
  63. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +2 -1
  64. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +88 -0
  65. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +55 -18
  66. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +6 -29
  67. data/lib/aws-sdk-s3/plugins/location_constraint.rb +3 -1
  68. data/lib/aws-sdk-s3/plugins/md5s.rb +10 -68
  69. data/lib/aws-sdk-s3/plugins/s3_signer.rb +42 -111
  70. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +28 -9
  71. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -1
  72. data/lib/aws-sdk-s3/presigned_post.rb +99 -78
  73. data/lib/aws-sdk-s3/presigner.rb +32 -41
  74. data/lib/aws-sdk-s3/resource.rb +139 -12
  75. data/lib/aws-sdk-s3/transfer_manager.rb +304 -0
  76. data/lib/aws-sdk-s3/types.rb +10204 -5378
  77. data/lib/aws-sdk-s3.rb +35 -27
  78. data/sig/bucket.rbs +231 -0
  79. data/sig/bucket_acl.rbs +78 -0
  80. data/sig/bucket_cors.rbs +69 -0
  81. data/sig/bucket_lifecycle.rbs +88 -0
  82. data/sig/bucket_lifecycle_configuration.rbs +115 -0
  83. data/sig/bucket_logging.rbs +76 -0
  84. data/sig/bucket_notification.rbs +114 -0
  85. data/sig/bucket_policy.rbs +59 -0
  86. data/sig/bucket_request_payment.rbs +54 -0
  87. data/sig/bucket_tagging.rbs +65 -0
  88. data/sig/bucket_versioning.rbs +77 -0
  89. data/sig/bucket_website.rbs +93 -0
  90. data/sig/client.rbs +2586 -0
  91. data/sig/customizations/bucket.rbs +19 -0
  92. data/sig/customizations/object.rbs +38 -0
  93. data/sig/customizations/object_summary.rbs +35 -0
  94. data/sig/errors.rbs +44 -0
  95. data/sig/multipart_upload.rbs +120 -0
  96. data/sig/multipart_upload_part.rbs +109 -0
  97. data/sig/object.rbs +464 -0
  98. data/sig/object_acl.rbs +86 -0
  99. data/sig/object_summary.rbs +347 -0
  100. data/sig/object_version.rbs +143 -0
  101. data/sig/resource.rbs +141 -0
  102. data/sig/types.rbs +2868 -0
  103. data/sig/waiters.rbs +95 -0
  104. metadata +51 -16
  105. data/lib/aws-sdk-s3/arn/access_point_arn.rb +0 -69
  106. data/lib/aws-sdk-s3/arn/multi_region_access_point_arn.rb +0 -69
  107. data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +0 -69
  108. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +0 -73
  109. data/lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb +0 -25
@@ -69,6 +69,13 @@ module Aws::S3
69
69
  end
70
70
 
71
71
  # The class of storage used to store the object.
72
+ #
73
+ # <note markdown="1"> **Directory buckets** - Directory buckets only support
74
+ # `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in
75
+ # Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent Access
76
+ # storage class) in Dedicated Local Zones.
77
+ #
78
+ # </note>
72
79
  # @return [String]
73
80
  def storage_class
74
81
  data[:storage_class]
@@ -76,6 +83,11 @@ module Aws::S3
76
83
 
77
84
  # Specifies the owner of the object that is part of the multipart
78
85
  # upload.
86
+ #
87
+ # <note markdown="1"> **Directory buckets** - The bucket owner is returned as the object
88
+ # owner for all the objects.
89
+ #
90
+ # </note>
79
91
  # @return [Types::Owner]
80
92
  def owner
81
93
  data[:owner]
@@ -87,6 +99,24 @@ module Aws::S3
87
99
  data[:initiator]
88
100
  end
89
101
 
102
+ # The algorithm that was used to create a checksum of the object.
103
+ # @return [String]
104
+ def checksum_algorithm
105
+ data[:checksum_algorithm]
106
+ end
107
+
108
+ # The checksum type that is used to calculate the object’s checksum
109
+ # value. For more information, see [Checking object integrity][1] in the
110
+ # *Amazon S3 User Guide*.
111
+ #
112
+ #
113
+ #
114
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
115
+ # @return [String]
116
+ def checksum_type
117
+ data[:checksum_type]
118
+ end
119
+
90
120
  # @!endgroup
91
121
 
92
122
  # @return [Client]
@@ -211,7 +241,9 @@ module Aws::S3
211
241
  :retry
212
242
  end
213
243
  end
214
- Aws::Waiters::Waiter.new(options).wait({})
244
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
245
+ Aws::Waiters::Waiter.new(options).wait({})
246
+ end
215
247
  end
216
248
 
217
249
  # @!group Actions
@@ -221,22 +253,40 @@ module Aws::S3
221
253
  # multipart_upload.abort({
222
254
  # request_payer: "requester", # accepts requester
223
255
  # expected_bucket_owner: "AccountId",
256
+ # if_match_initiated_time: Time.now,
224
257
  # })
225
258
  # @param [Hash] options ({})
226
259
  # @option options [String] :request_payer
227
260
  # Confirms that the requester knows that they will be charged for the
228
261
  # request. Bucket owners need not specify this parameter in their
229
- # requests. For information about downloading objects from requester
230
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
262
+ # requests. If either the source or destination S3 bucket has Requester
263
+ # Pays enabled, the requester will pay for corresponding charges to copy
264
+ # the object. For information about downloading objects from Requester
265
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
231
266
  # in the *Amazon S3 User Guide*.
232
267
  #
268
+ # <note markdown="1"> This functionality is not supported for directory buckets.
269
+ #
270
+ # </note>
271
+ #
233
272
  #
234
273
  #
235
274
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
236
275
  # @option options [String] :expected_bucket_owner
237
- # The account ID of the expected bucket owner. If the bucket is owned by
238
- # a different account, the request will fail with an HTTP `403 (Access
239
- # Denied)` error.
276
+ # The account ID of the expected bucket owner. If the account ID that
277
+ # you provide does not match the actual owner of the bucket, the request
278
+ # fails with the HTTP status code `403 Forbidden` (access denied).
279
+ # @option options [Time,DateTime,Date,Integer,String] :if_match_initiated_time
280
+ # If present, this header aborts an in progress multipart upload only if
281
+ # it was initiated on the provided timestamp. If the initiated timestamp
282
+ # of the multipart upload does not match the provided value, the
283
+ # operation returns a `412 Precondition Failed` error. If the initiated
284
+ # timestamp matches or if the multipart upload doesn’t exist, the
285
+ # operation returns a `204 Success (No Content)` response.
286
+ #
287
+ # <note markdown="1"> This functionality is only supported for directory buckets.
288
+ #
289
+ # </note>
240
290
  # @return [Types::AbortMultipartUploadOutput]
241
291
  def abort(options = {})
242
292
  options = options.merge(
@@ -244,7 +294,9 @@ module Aws::S3
244
294
  key: @object_key,
245
295
  upload_id: @id
246
296
  )
247
- resp = @client.abort_multipart_upload(options)
297
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
298
+ @client.abort_multipart_upload(options)
299
+ end
248
300
  resp.data
249
301
  end
250
302
 
@@ -255,30 +307,198 @@ module Aws::S3
255
307
  # parts: [
256
308
  # {
257
309
  # etag: "ETag",
310
+ # checksum_crc32: "ChecksumCRC32",
311
+ # checksum_crc32c: "ChecksumCRC32C",
312
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
313
+ # checksum_sha1: "ChecksumSHA1",
314
+ # checksum_sha256: "ChecksumSHA256",
258
315
  # part_number: 1,
259
316
  # },
260
317
  # ],
261
318
  # },
319
+ # checksum_crc32: "ChecksumCRC32",
320
+ # checksum_crc32c: "ChecksumCRC32C",
321
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
322
+ # checksum_sha1: "ChecksumSHA1",
323
+ # checksum_sha256: "ChecksumSHA256",
324
+ # checksum_type: "COMPOSITE", # accepts COMPOSITE, FULL_OBJECT
325
+ # mpu_object_size: 1,
262
326
  # request_payer: "requester", # accepts requester
263
327
  # expected_bucket_owner: "AccountId",
328
+ # if_match: "IfMatch",
329
+ # if_none_match: "IfNoneMatch",
330
+ # sse_customer_algorithm: "SSECustomerAlgorithm",
331
+ # sse_customer_key: "SSECustomerKey",
332
+ # sse_customer_key_md5: "SSECustomerKeyMD5",
264
333
  # })
265
334
  # @param [Hash] options ({})
266
335
  # @option options [Types::CompletedMultipartUpload] :multipart_upload
267
336
  # The container for the multipart upload request information.
337
+ # @option options [String] :checksum_crc32
338
+ # This header can be used as a data integrity check to verify that the
339
+ # data received is the same data that was originally sent. This header
340
+ # specifies the Base64 encoded, 32-bit `CRC32` checksum of the object.
341
+ # For more information, see [Checking object integrity][1] in the
342
+ # *Amazon S3 User Guide*.
343
+ #
344
+ #
345
+ #
346
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
347
+ # @option options [String] :checksum_crc32c
348
+ # This header can be used as a data integrity check to verify that the
349
+ # data received is the same data that was originally sent. This header
350
+ # specifies the Base64 encoded, 32-bit `CRC32C` checksum of the object.
351
+ # For more information, see [Checking object integrity][1] in the
352
+ # *Amazon S3 User Guide*.
353
+ #
354
+ #
355
+ #
356
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
357
+ # @option options [String] :checksum_crc64nvme
358
+ # This header can be used as a data integrity check to verify that the
359
+ # data received is the same data that was originally sent. This header
360
+ # specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the
361
+ # object. The `CRC64NVME` checksum is always a full object checksum. For
362
+ # more information, see [Checking object integrity in the Amazon S3 User
363
+ # Guide][1].
364
+ #
365
+ #
366
+ #
367
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
368
+ # @option options [String] :checksum_sha1
369
+ # This header can be used as a data integrity check to verify that the
370
+ # data received is the same data that was originally sent. This header
371
+ # specifies the Base64 encoded, 160-bit `SHA1` digest of the object. For
372
+ # more information, see [Checking object integrity][1] in the *Amazon S3
373
+ # User Guide*.
374
+ #
375
+ #
376
+ #
377
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
378
+ # @option options [String] :checksum_sha256
379
+ # This header can be used as a data integrity check to verify that the
380
+ # data received is the same data that was originally sent. This header
381
+ # specifies the Base64 encoded, 256-bit `SHA256` digest of the object.
382
+ # For more information, see [Checking object integrity][1] in the
383
+ # *Amazon S3 User Guide*.
384
+ #
385
+ #
386
+ #
387
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
388
+ # @option options [String] :checksum_type
389
+ # This header specifies the checksum type of the object, which
390
+ # determines how part-level checksums are combined to create an
391
+ # object-level checksum for multipart objects. You can use this header
392
+ # as a data integrity check to verify that the checksum type that is
393
+ # received is the same checksum that was specified. If the checksum type
394
+ # doesn’t match the checksum type that was specified for the object
395
+ # during the `CreateMultipartUpload` request, it’ll result in a
396
+ # `BadDigest` error. For more information, see Checking object integrity
397
+ # in the Amazon S3 User Guide.
398
+ # @option options [Integer] :mpu_object_size
399
+ # The expected total object size of the multipart upload request. If
400
+ # there’s a mismatch between the specified object size value and the
401
+ # actual object size value, it results in an `HTTP 400 InvalidRequest`
402
+ # error.
268
403
  # @option options [String] :request_payer
269
404
  # Confirms that the requester knows that they will be charged for the
270
405
  # request. Bucket owners need not specify this parameter in their
271
- # requests. For information about downloading objects from requester
272
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
406
+ # requests. If either the source or destination S3 bucket has Requester
407
+ # Pays enabled, the requester will pay for corresponding charges to copy
408
+ # the object. For information about downloading objects from Requester
409
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
273
410
  # in the *Amazon S3 User Guide*.
274
411
  #
412
+ # <note markdown="1"> This functionality is not supported for directory buckets.
413
+ #
414
+ # </note>
415
+ #
275
416
  #
276
417
  #
277
418
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
278
419
  # @option options [String] :expected_bucket_owner
279
- # The account ID of the expected bucket owner. If the bucket is owned by
280
- # a different account, the request will fail with an HTTP `403 (Access
281
- # Denied)` error.
420
+ # The account ID of the expected bucket owner. If the account ID that
421
+ # you provide does not match the actual owner of the bucket, the request
422
+ # fails with the HTTP status code `403 Forbidden` (access denied).
423
+ # @option options [String] :if_match
424
+ # Uploads the object only if the ETag (entity tag) value provided during
425
+ # the WRITE operation matches the ETag of the object in S3. If the ETag
426
+ # values do not match, the operation returns a `412 Precondition Failed`
427
+ # error.
428
+ #
429
+ # If a conflicting operation occurs during the upload S3 returns a `409
430
+ # ConditionalRequestConflict` response. On a 409 failure you should
431
+ # fetch the object's ETag, re-initiate the multipart upload with
432
+ # `CreateMultipartUpload`, and re-upload each part.
433
+ #
434
+ # Expects the ETag value as a string.
435
+ #
436
+ # For more information about conditional requests, see [RFC 7232][1], or
437
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
438
+ #
439
+ #
440
+ #
441
+ # [1]: https://tools.ietf.org/html/rfc7232
442
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
443
+ # @option options [String] :if_none_match
444
+ # Uploads the object only if the object key name does not already exist
445
+ # in the bucket specified. Otherwise, Amazon S3 returns a `412
446
+ # Precondition Failed` error.
447
+ #
448
+ # If a conflicting operation occurs during the upload S3 returns a `409
449
+ # ConditionalRequestConflict` response. On a 409 failure you should
450
+ # re-initiate the multipart upload with `CreateMultipartUpload` and
451
+ # re-upload each part.
452
+ #
453
+ # Expects the '*' (asterisk) character.
454
+ #
455
+ # For more information about conditional requests, see [RFC 7232][1], or
456
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
457
+ #
458
+ #
459
+ #
460
+ # [1]: https://tools.ietf.org/html/rfc7232
461
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
462
+ # @option options [String] :sse_customer_algorithm
463
+ # The server-side encryption (SSE) algorithm used to encrypt the object.
464
+ # This parameter is required only when the object was created using a
465
+ # checksum algorithm or if your bucket policy requires the use of SSE-C.
466
+ # For more information, see [Protecting data using SSE-C keys][1] in the
467
+ # *Amazon S3 User Guide*.
468
+ #
469
+ # <note markdown="1"> This functionality is not supported for directory buckets.
470
+ #
471
+ # </note>
472
+ #
473
+ #
474
+ #
475
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#ssec-require-condition-key
476
+ # @option options [String] :sse_customer_key
477
+ # The server-side encryption (SSE) customer managed key. This parameter
478
+ # is needed only when the object was created using a checksum algorithm.
479
+ # For more information, see [Protecting data using SSE-C keys][1] in the
480
+ # *Amazon S3 User Guide*.
481
+ #
482
+ # <note markdown="1"> This functionality is not supported for directory buckets.
483
+ #
484
+ # </note>
485
+ #
486
+ #
487
+ #
488
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
489
+ # @option options [String] :sse_customer_key_md5
490
+ # The MD5 server-side encryption (SSE) customer managed key. This
491
+ # parameter is needed only when the object was created using a checksum
492
+ # algorithm. For more information, see [Protecting data using SSE-C
493
+ # keys][1] in the *Amazon S3 User Guide*.
494
+ #
495
+ # <note markdown="1"> This functionality is not supported for directory buckets.
496
+ #
497
+ # </note>
498
+ #
499
+ #
500
+ #
501
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
282
502
  # @return [Object]
283
503
  def complete(options = {})
284
504
  options = options.merge(
@@ -286,7 +506,9 @@ module Aws::S3
286
506
  key: @object_key,
287
507
  upload_id: @id
288
508
  )
289
- @client.complete_multipart_upload(options)
509
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
510
+ @client.complete_multipart_upload(options)
511
+ end
290
512
  Object.new(
291
513
  bucket_name: @bucket_name,
292
514
  key: @object_key,
@@ -322,22 +544,70 @@ module Aws::S3
322
544
  # parts = multipart_upload.parts({
323
545
  # request_payer: "requester", # accepts requester
324
546
  # expected_bucket_owner: "AccountId",
547
+ # sse_customer_algorithm: "SSECustomerAlgorithm",
548
+ # sse_customer_key: "SSECustomerKey",
549
+ # sse_customer_key_md5: "SSECustomerKeyMD5",
325
550
  # })
326
551
  # @param [Hash] options ({})
327
552
  # @option options [String] :request_payer
328
553
  # Confirms that the requester knows that they will be charged for the
329
554
  # request. Bucket owners need not specify this parameter in their
330
- # requests. For information about downloading objects from requester
331
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
555
+ # requests. If either the source or destination S3 bucket has Requester
556
+ # Pays enabled, the requester will pay for corresponding charges to copy
557
+ # the object. For information about downloading objects from Requester
558
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
332
559
  # in the *Amazon S3 User Guide*.
333
560
  #
561
+ # <note markdown="1"> This functionality is not supported for directory buckets.
562
+ #
563
+ # </note>
564
+ #
334
565
  #
335
566
  #
336
567
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
337
568
  # @option options [String] :expected_bucket_owner
338
- # The account ID of the expected bucket owner. If the bucket is owned by
339
- # a different account, the request will fail with an HTTP `403 (Access
340
- # Denied)` error.
569
+ # The account ID of the expected bucket owner. If the account ID that
570
+ # you provide does not match the actual owner of the bucket, the request
571
+ # fails with the HTTP status code `403 Forbidden` (access denied).
572
+ # @option options [String] :sse_customer_algorithm
573
+ # The server-side encryption (SSE) algorithm used to encrypt the object.
574
+ # This parameter is needed only when the object was created using a
575
+ # checksum algorithm. For more information, see [Protecting data using
576
+ # SSE-C keys][1] in the *Amazon S3 User Guide*.
577
+ #
578
+ # <note markdown="1"> This functionality is not supported for directory buckets.
579
+ #
580
+ # </note>
581
+ #
582
+ #
583
+ #
584
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
585
+ # @option options [String] :sse_customer_key
586
+ # The server-side encryption (SSE) customer managed key. This parameter
587
+ # is needed only when the object was created using a checksum algorithm.
588
+ # For more information, see [Protecting data using SSE-C keys][1] in the
589
+ # *Amazon S3 User Guide*.
590
+ #
591
+ # <note markdown="1"> This functionality is not supported for directory buckets.
592
+ #
593
+ # </note>
594
+ #
595
+ #
596
+ #
597
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
598
+ # @option options [String] :sse_customer_key_md5
599
+ # The MD5 server-side encryption (SSE) customer managed key. This
600
+ # parameter is needed only when the object was created using a checksum
601
+ # algorithm. For more information, see [Protecting data using SSE-C
602
+ # keys][1] in the *Amazon S3 User Guide*.
603
+ #
604
+ # <note markdown="1"> This functionality is not supported for directory buckets.
605
+ #
606
+ # </note>
607
+ #
608
+ #
609
+ #
610
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
341
611
  # @return [MultipartUploadPart::Collection]
342
612
  def parts(options = {})
343
613
  batches = Enumerator.new do |y|
@@ -346,7 +616,9 @@ module Aws::S3
346
616
  key: @object_key,
347
617
  upload_id: @id
348
618
  )
349
- resp = @client.list_parts(options)
619
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
620
+ @client.list_parts(options)
621
+ end
350
622
  resp.each_page do |page|
351
623
  batch = []
352
624
  page.data.parts.each do |p|
@@ -414,3 +686,6 @@ module Aws::S3
414
686
  class Collection < Aws::Resources::Collection; end
415
687
  end
416
688
  end
689
+
690
+ # Load customizations if they exist
691
+ require 'aws-sdk-s3/customizations/multipart_upload'
@@ -2,17 +2,16 @@
2
2
 
3
3
  module Aws
4
4
  module S3
5
+ # Raise when multipart upload fails to complete.
5
6
  class MultipartUploadError < StandardError
6
7
 
7
- def initialize(message, errors)
8
+ def initialize(message, errors = [])
8
9
  @errors = errors
9
10
  super(message)
10
11
  end
11
12
 
12
- # @return [Array<StandardError>] The list of errors encountered
13
- # when uploading or aborting the upload.
13
+ # @return [Array<StandardError>] The list of errors encountered when uploading or aborting the upload.
14
14
  attr_reader :errors
15
-
16
15
  end
17
16
  end
18
17
  end