aws-sdk-s3 1.136.0 → 1.176.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +250 -1
  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 +671 -139
  7. data/lib/aws-sdk-s3/bucket_acl.rb +12 -12
  8. data/lib/aws-sdk-s3/bucket_cors.rb +16 -16
  9. data/lib/aws-sdk-s3/bucket_lifecycle.rb +21 -16
  10. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +74 -17
  11. data/lib/aws-sdk-s3/bucket_logging.rb +19 -12
  12. data/lib/aws-sdk-s3/bucket_notification.rb +6 -6
  13. data/lib/aws-sdk-s3/bucket_policy.rb +62 -18
  14. data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
  15. data/lib/aws-sdk-s3/bucket_request_payment.rb +12 -12
  16. data/lib/aws-sdk-s3/bucket_tagging.rb +16 -16
  17. data/lib/aws-sdk-s3/bucket_versioning.rb +32 -32
  18. data/lib/aws-sdk-s3/bucket_website.rb +16 -16
  19. data/lib/aws-sdk-s3/client.rb +7597 -2823
  20. data/lib/aws-sdk-s3/client_api.rb +288 -22
  21. data/lib/aws-sdk-s3/customizations/bucket.rb +1 -1
  22. data/lib/aws-sdk-s3/customizations/errors.rb +15 -2
  23. data/lib/aws-sdk-s3/customizations/object.rb +11 -5
  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.rb +25 -31
  27. data/lib/aws-sdk-s3/encryption/client.rb +2 -2
  28. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +2 -2
  29. data/lib/aws-sdk-s3/encryptionV2/client.rb +2 -2
  30. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +2 -2
  31. data/lib/aws-sdk-s3/endpoint_parameters.rb +53 -18
  32. data/lib/aws-sdk-s3/endpoint_provider.rb +125 -6
  33. data/lib/aws-sdk-s3/endpoints.rb +545 -1261
  34. data/lib/aws-sdk-s3/errors.rb +47 -0
  35. data/lib/aws-sdk-s3/express_credentials.rb +55 -0
  36. data/lib/aws-sdk-s3/express_credentials_provider.rb +59 -0
  37. data/lib/aws-sdk-s3/file_downloader.rb +1 -2
  38. data/lib/aws-sdk-s3/file_uploader.rb +1 -1
  39. data/lib/aws-sdk-s3/multipart_file_uploader.rb +4 -4
  40. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +6 -5
  41. data/lib/aws-sdk-s3/multipart_upload.rb +139 -36
  42. data/lib/aws-sdk-s3/multipart_upload_part.rb +175 -54
  43. data/lib/aws-sdk-s3/object.rb +1923 -313
  44. data/lib/aws-sdk-s3/object_acl.rb +34 -22
  45. data/lib/aws-sdk-s3/object_copier.rb +1 -1
  46. data/lib/aws-sdk-s3/object_multipart_copier.rb +10 -8
  47. data/lib/aws-sdk-s3/object_summary.rb +1690 -250
  48. data/lib/aws-sdk-s3/object_version.rb +397 -67
  49. data/lib/aws-sdk-s3/plugins/access_grants.rb +178 -0
  50. data/lib/aws-sdk-s3/plugins/endpoints.rb +32 -208
  51. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +97 -0
  52. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +55 -18
  53. data/lib/aws-sdk-s3/plugins/location_constraint.rb +3 -1
  54. data/lib/aws-sdk-s3/plugins/md5s.rb +2 -1
  55. data/lib/aws-sdk-s3/plugins/s3_signer.rb +7 -2
  56. data/lib/aws-sdk-s3/presigner.rb +5 -2
  57. data/lib/aws-sdk-s3/resource.rb +121 -22
  58. data/lib/aws-sdk-s3/types.rb +5960 -1526
  59. data/lib/aws-sdk-s3.rb +35 -31
  60. data/sig/bucket.rbs +221 -0
  61. data/sig/bucket_acl.rbs +78 -0
  62. data/sig/bucket_cors.rbs +69 -0
  63. data/sig/bucket_lifecycle.rbs +88 -0
  64. data/sig/bucket_lifecycle_configuration.rbs +115 -0
  65. data/sig/bucket_logging.rbs +76 -0
  66. data/sig/bucket_notification.rbs +114 -0
  67. data/sig/bucket_policy.rbs +59 -0
  68. data/sig/bucket_request_payment.rbs +54 -0
  69. data/sig/bucket_tagging.rbs +65 -0
  70. data/sig/bucket_versioning.rbs +77 -0
  71. data/sig/bucket_website.rbs +93 -0
  72. data/sig/client.rbs +2450 -0
  73. data/sig/customizations/bucket.rbs +19 -0
  74. data/sig/customizations/object.rbs +38 -0
  75. data/sig/customizations/object_summary.rbs +35 -0
  76. data/sig/errors.rbs +42 -0
  77. data/sig/multipart_upload.rbs +113 -0
  78. data/sig/multipart_upload_part.rbs +105 -0
  79. data/sig/object.rbs +448 -0
  80. data/sig/object_acl.rbs +86 -0
  81. data/sig/object_summary.rbs +340 -0
  82. data/sig/object_version.rbs +140 -0
  83. data/sig/resource.rbs +132 -0
  84. data/sig/types.rbs +2682 -0
  85. data/sig/waiters.rbs +95 -0
  86. metadata +44 -11
@@ -56,6 +56,10 @@ module Aws::S3
56
56
 
57
57
  # If present, indicates that the requester was successfully charged for
58
58
  # the request.
59
+ #
60
+ # <note markdown="1"> This functionality is not supported for directory buckets.
61
+ #
62
+ # </note>
59
63
  # @return [String]
60
64
  def request_charged
61
65
  data[:request_charged]
@@ -75,7 +79,7 @@ module Aws::S3
75
79
  #
76
80
  # @return [self]
77
81
  def load
78
- resp = Aws::Plugins::UserAgent.feature('resource') do
82
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
79
83
  @client.get_object_acl(
80
84
  bucket: @bucket_name,
81
85
  key: @object_key
@@ -195,7 +199,7 @@ module Aws::S3
195
199
  :retry
196
200
  end
197
201
  end
198
- Aws::Plugins::UserAgent.feature('resource') do
202
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
199
203
  Aws::Waiters::Waiter.new(options).wait({})
200
204
  end
201
205
  end
@@ -261,12 +265,12 @@ module Aws::S3
261
265
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
262
266
  # @option options [String] :checksum_algorithm
263
267
  # Indicates the algorithm used to create the checksum for the object
264
- # when using the SDK. This header will not provide any additional
265
- # functionality if not using the SDK. When sending this header, there
266
- # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
267
- # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
268
- # `400 Bad Request`. For more information, see [Checking object
269
- # integrity][1] in the *Amazon S3 User Guide*.
268
+ # when you use the SDK. This header will not provide any additional
269
+ # functionality if you don't use the SDK. When you send this header,
270
+ # there must be a corresponding `x-amz-checksum` or `x-amz-trailer`
271
+ # header sent. Otherwise, Amazon S3 fails the request with the HTTP
272
+ # status code `400 Bad Request`. For more information, see [Checking
273
+ # object integrity][1] in the *Amazon S3 User Guide*.
270
274
  #
271
275
  # If you provide an individual checksum, Amazon S3 ignores any provided
272
276
  # `ChecksumAlgorithm` parameter.
@@ -278,15 +282,15 @@ module Aws::S3
278
282
  # Allows grantee the read, write, read ACP, and write ACP permissions on
279
283
  # the bucket.
280
284
  #
281
- # This action is not supported by Amazon S3 on Outposts.
285
+ # This functionality is not supported for Amazon S3 on Outposts.
282
286
  # @option options [String] :grant_read
283
287
  # Allows grantee to list the objects in the bucket.
284
288
  #
285
- # This action is not supported by Amazon S3 on Outposts.
289
+ # This functionality is not supported for Amazon S3 on Outposts.
286
290
  # @option options [String] :grant_read_acp
287
291
  # Allows grantee to read the bucket ACL.
288
292
  #
289
- # This action is not supported by Amazon S3 on Outposts.
293
+ # This functionality is not supported for Amazon S3 on Outposts.
290
294
  # @option options [String] :grant_write
291
295
  # Allows grantee to create new objects in the bucket.
292
296
  #
@@ -295,32 +299,40 @@ module Aws::S3
295
299
  # @option options [String] :grant_write_acp
296
300
  # Allows grantee to write the ACL for the applicable bucket.
297
301
  #
298
- # This action is not supported by Amazon S3 on Outposts.
302
+ # This functionality is not supported for Amazon S3 on Outposts.
299
303
  # @option options [String] :request_payer
300
304
  # Confirms that the requester knows that they will be charged for the
301
305
  # request. Bucket owners need not specify this parameter in their
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*.
306
+ # requests. If either the source or destination S3 bucket has Requester
307
+ # Pays enabled, the requester will pay for corresponding charges to copy
308
+ # the object. For information about downloading objects from Requester
309
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
310
+ # in the *Amazon S3 User Guide*.
311
+ #
312
+ # <note markdown="1"> This functionality is not supported for directory buckets.
313
+ #
314
+ # </note>
307
315
  #
308
316
  #
309
317
  #
310
318
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
311
319
  # @option options [String] :version_id
312
- # VersionId used to reference a specific version of the object.
320
+ # Version ID used to reference a specific version of the object.
321
+ #
322
+ # <note markdown="1"> This functionality is not supported for directory buckets.
323
+ #
324
+ # </note>
313
325
  # @option options [String] :expected_bucket_owner
314
- # The account ID of the expected bucket owner. If the bucket is owned by
315
- # a different account, the request fails with the HTTP status code `403
316
- # Forbidden` (access denied).
326
+ # The account ID of the expected bucket owner. If the account ID that
327
+ # you provide does not match the actual owner of the bucket, the request
328
+ # fails with the HTTP status code `403 Forbidden` (access denied).
317
329
  # @return [Types::PutObjectAclOutput]
318
330
  def put(options = {})
319
331
  options = options.merge(
320
332
  bucket: @bucket_name,
321
333
  key: @object_key
322
334
  )
323
- resp = Aws::Plugins::UserAgent.feature('resource') do
335
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
324
336
  @client.put_object_acl(options)
325
337
  end
326
338
  resp.data
@@ -28,7 +28,7 @@ module Aws
28
28
  options[:bucket] = target_bucket
29
29
  options[:key] = target_key
30
30
  options[:copy_source] = copy_source(source)
31
- Aws::Plugins::UserAgent.feature('s3-transfer') do
31
+ Aws::Plugins::UserAgent.metric('S3_TRANSFER') do
32
32
  if options.delete(:multipart_copy)
33
33
  apply_source_client(source, options)
34
34
  ObjectMultipartCopier.new(@options).copy(options)
@@ -138,9 +138,7 @@ module Aws
138
138
  end
139
139
 
140
140
  def source_metadata(options)
141
- if options[:content_length]
142
- return { content_length: options.delete(:content_length) }
143
- end
141
+ return options.slice(:content_length) if options[:content_length]
144
142
 
145
143
  client = options[:copy_source_client] || @client
146
144
 
@@ -150,11 +148,15 @@ module Aws
150
148
  bucket, key = options[:copy_source].match(/([^\/]+?)\/(.+)/)[1,2]
151
149
  end
152
150
 
153
- key = CGI.unescape(key)
154
- opts = { bucket: bucket, key: key }
155
- opts[:version_id] = version_id if version_id
156
- opts[:part_number] = options[:part_number] if options[:part_number]
157
- client.head_object(opts).to_h
151
+ head_opts = { bucket: bucket, key: CGI.unescape(key) }.tap { |opts|
152
+ opts[:version_id] = version_id if version_id
153
+ opts[:part_number] = options[:part_number] if options[:part_number]
154
+ }
155
+
156
+ client.head_object(head_opts).to_h.tap { |head|
157
+ head.delete(:server_side_encryption)
158
+ head.delete(:ssekms_key_id)
159
+ }
158
160
  end
159
161
 
160
162
  def default_part_size(source_size)