aws-sdk-s3 1.142.0 → 1.208.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 (118) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +417 -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 +358 -106
  7. data/lib/aws-sdk-s3/bucket_acl.rb +10 -9
  8. data/lib/aws-sdk-s3/bucket_cors.rb +10 -9
  9. data/lib/aws-sdk-s3/bucket_lifecycle.rb +11 -6
  10. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +64 -7
  11. data/lib/aws-sdk-s3/bucket_logging.rb +5 -5
  12. data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
  13. data/lib/aws-sdk-s3/bucket_policy.rb +14 -13
  14. data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
  15. data/lib/aws-sdk-s3/bucket_request_payment.rb +6 -6
  16. data/lib/aws-sdk-s3/bucket_tagging.rb +7 -7
  17. data/lib/aws-sdk-s3/bucket_versioning.rb +47 -14
  18. data/lib/aws-sdk-s3/bucket_website.rb +7 -7
  19. data/lib/aws-sdk-s3/client.rb +5671 -2195
  20. data/lib/aws-sdk-s3/client_api.rb +665 -166
  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 +87 -91
  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 +28 -36
  27. data/lib/aws-sdk-s3/default_executor.rb +103 -0
  28. data/lib/aws-sdk-s3/encryption/client.rb +4 -4
  29. data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +2 -0
  30. data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +2 -0
  31. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +4 -2
  32. data/lib/aws-sdk-s3/encryptionV2/client.rb +100 -25
  33. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +7 -162
  34. data/lib/aws-sdk-s3/encryptionV2/decryption.rb +205 -0
  35. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +17 -0
  36. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +2 -0
  37. data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +2 -0
  38. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -2
  39. data/lib/aws-sdk-s3/encryptionV2/utils.rb +5 -0
  40. data/lib/aws-sdk-s3/encryptionV3/client.rb +885 -0
  41. data/lib/aws-sdk-s3/encryptionV3/decrypt_handler.rb +98 -0
  42. data/lib/aws-sdk-s3/encryptionV3/decryption.rb +244 -0
  43. data/lib/aws-sdk-s3/encryptionV3/default_cipher_provider.rb +159 -0
  44. data/lib/aws-sdk-s3/encryptionV3/default_key_provider.rb +35 -0
  45. data/lib/aws-sdk-s3/encryptionV3/encrypt_handler.rb +98 -0
  46. data/lib/aws-sdk-s3/encryptionV3/errors.rb +47 -0
  47. data/lib/aws-sdk-s3/encryptionV3/io_auth_decrypter.rb +60 -0
  48. data/lib/aws-sdk-s3/encryptionV3/io_decrypter.rb +35 -0
  49. data/lib/aws-sdk-s3/encryptionV3/io_encrypter.rb +84 -0
  50. data/lib/aws-sdk-s3/encryptionV3/key_provider.rb +28 -0
  51. data/lib/aws-sdk-s3/encryptionV3/kms_cipher_provider.rb +159 -0
  52. data/lib/aws-sdk-s3/encryptionV3/materials.rb +58 -0
  53. data/lib/aws-sdk-s3/encryptionV3/utils.rb +321 -0
  54. data/lib/aws-sdk-s3/encryption_v2.rb +1 -0
  55. data/lib/aws-sdk-s3/encryption_v3.rb +24 -0
  56. data/lib/aws-sdk-s3/endpoint_parameters.rb +37 -34
  57. data/lib/aws-sdk-s3/endpoint_provider.rb +572 -277
  58. data/lib/aws-sdk-s3/endpoints.rb +566 -1612
  59. data/lib/aws-sdk-s3/errors.rb +58 -0
  60. data/lib/aws-sdk-s3/express_credentials_provider.rb +27 -4
  61. data/lib/aws-sdk-s3/file_downloader.rb +192 -146
  62. data/lib/aws-sdk-s3/file_uploader.rb +10 -14
  63. data/lib/aws-sdk-s3/legacy_signer.rb +2 -1
  64. data/lib/aws-sdk-s3/multipart_download_error.rb +8 -0
  65. data/lib/aws-sdk-s3/multipart_file_uploader.rb +106 -102
  66. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +99 -108
  67. data/lib/aws-sdk-s3/multipart_upload.rb +112 -12
  68. data/lib/aws-sdk-s3/multipart_upload_error.rb +3 -4
  69. data/lib/aws-sdk-s3/multipart_upload_part.rb +55 -39
  70. data/lib/aws-sdk-s3/object.rb +713 -227
  71. data/lib/aws-sdk-s3/object_acl.rb +15 -9
  72. data/lib/aws-sdk-s3/object_copier.rb +1 -1
  73. data/lib/aws-sdk-s3/object_multipart_copier.rb +12 -9
  74. data/lib/aws-sdk-s3/object_summary.rb +592 -173
  75. data/lib/aws-sdk-s3/object_version.rb +102 -17
  76. data/lib/aws-sdk-s3/plugins/access_grants.rb +178 -0
  77. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
  78. data/lib/aws-sdk-s3/plugins/endpoints.rb +26 -213
  79. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +19 -21
  80. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +55 -18
  81. data/lib/aws-sdk-s3/plugins/md5s.rb +10 -71
  82. data/lib/aws-sdk-s3/plugins/s3_signer.rb +7 -2
  83. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +5 -7
  84. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -1
  85. data/lib/aws-sdk-s3/presigner.rb +7 -5
  86. data/lib/aws-sdk-s3/resource.rb +53 -20
  87. data/lib/aws-sdk-s3/transfer_manager.rb +303 -0
  88. data/lib/aws-sdk-s3/types.rb +4738 -1542
  89. data/lib/aws-sdk-s3.rb +35 -31
  90. data/sig/bucket.rbs +231 -0
  91. data/sig/bucket_acl.rbs +78 -0
  92. data/sig/bucket_cors.rbs +69 -0
  93. data/sig/bucket_lifecycle.rbs +88 -0
  94. data/sig/bucket_lifecycle_configuration.rbs +115 -0
  95. data/sig/bucket_logging.rbs +76 -0
  96. data/sig/bucket_notification.rbs +114 -0
  97. data/sig/bucket_policy.rbs +59 -0
  98. data/sig/bucket_request_payment.rbs +54 -0
  99. data/sig/bucket_tagging.rbs +65 -0
  100. data/sig/bucket_versioning.rbs +77 -0
  101. data/sig/bucket_website.rbs +93 -0
  102. data/sig/client.rbs +2612 -0
  103. data/sig/customizations/bucket.rbs +19 -0
  104. data/sig/customizations/object.rbs +38 -0
  105. data/sig/customizations/object_summary.rbs +35 -0
  106. data/sig/errors.rbs +44 -0
  107. data/sig/multipart_upload.rbs +120 -0
  108. data/sig/multipart_upload_part.rbs +109 -0
  109. data/sig/object.rbs +464 -0
  110. data/sig/object_acl.rbs +86 -0
  111. data/sig/object_summary.rbs +347 -0
  112. data/sig/object_version.rbs +143 -0
  113. data/sig/resource.rbs +141 -0
  114. data/sig/types.rbs +2899 -0
  115. data/sig/waiters.rbs +95 -0
  116. metadata +58 -13
  117. data/lib/aws-sdk-s3/express_credentials_cache.rb +0 -30
  118. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +0 -31
@@ -42,7 +42,7 @@ module Aws::S3
42
42
  @object_key
43
43
  end
44
44
 
45
- # Container for the bucket owner's display name and ID.
45
+ # Container for the bucket owner's ID.
46
46
  # @return [Types::Owner]
47
47
  def owner
48
48
  data[:owner]
@@ -55,11 +55,17 @@ module Aws::S3
55
55
  end
56
56
 
57
57
  # If present, indicates that the requester was successfully charged for
58
- # the request.
58
+ # the request. For more information, see [Using Requester Pays buckets
59
+ # for storage transfers and usage][1] in the *Amazon Simple Storage
60
+ # Service user guide*.
59
61
  #
60
62
  # <note markdown="1"> This functionality is not supported for directory buckets.
61
63
  #
62
64
  # </note>
65
+ #
66
+ #
67
+ #
68
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html
63
69
  # @return [String]
64
70
  def request_charged
65
71
  data[:request_charged]
@@ -79,7 +85,7 @@ module Aws::S3
79
85
  #
80
86
  # @return [self]
81
87
  def load
82
- resp = Aws::Plugins::UserAgent.feature('resource') do
88
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
83
89
  @client.get_object_acl(
84
90
  bucket: @bucket_name,
85
91
  key: @object_key
@@ -199,7 +205,7 @@ module Aws::S3
199
205
  :retry
200
206
  end
201
207
  end
202
- Aws::Plugins::UserAgent.feature('resource') do
208
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
203
209
  Aws::Waiters::Waiter.new(options).wait({})
204
210
  end
205
211
  end
@@ -229,7 +235,7 @@ module Aws::S3
229
235
  # },
230
236
  # },
231
237
  # content_md5: "ContentMD5",
232
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
238
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
233
239
  # grant_full_control: "GrantFullControl",
234
240
  # grant_read: "GrantRead",
235
241
  # grant_read_acp: "GrantReadACP",
@@ -251,9 +257,9 @@ module Aws::S3
251
257
  # Contains the elements that set the ACL permissions for an object per
252
258
  # grantee.
253
259
  # @option options [String] :content_md5
254
- # The base64-encoded 128-bit MD5 digest of the data. This header must be
255
- # used as a message integrity check to verify that the request body was
256
- # not corrupted in transit. For more information, go to [RFC
260
+ # The Base64 encoded 128-bit `MD5` digest of the data. This header must
261
+ # be used as a message integrity check to verify that the request body
262
+ # was not corrupted in transit. For more information, go to [RFC
257
263
  # 1864.&gt;][1]
258
264
  #
259
265
  # For requests made using the Amazon Web Services Command Line Interface
@@ -332,7 +338,7 @@ module Aws::S3
332
338
  bucket: @bucket_name,
333
339
  key: @object_key
334
340
  )
335
- resp = Aws::Plugins::UserAgent.feature('resource') do
341
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
336
342
  @client.put_object_acl(options)
337
343
  end
338
344
  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)
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'thread'
4
- require 'cgi'
4
+ require "cgi/escape"
5
+ require "cgi/util" if RUBY_VERSION < "3.5"
5
6
 
6
7
  module Aws
7
8
  module S3
@@ -138,9 +139,7 @@ module Aws
138
139
  end
139
140
 
140
141
  def source_metadata(options)
141
- if options[:content_length]
142
- return { content_length: options.delete(:content_length) }
143
- end
142
+ return options.slice(:content_length) if options[:content_length]
144
143
 
145
144
  client = options[:copy_source_client] || @client
146
145
 
@@ -150,11 +149,15 @@ module Aws
150
149
  bucket, key = options[:copy_source].match(/([^\/]+?)\/(.+)/)[1,2]
151
150
  end
152
151
 
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
152
+ head_opts = { bucket: bucket, key: CGI.unescape(key) }.tap { |opts|
153
+ opts[:version_id] = version_id if version_id
154
+ opts[:part_number] = options[:part_number] if options[:part_number]
155
+ }
156
+
157
+ client.head_object(head_opts).to_h.tap { |head|
158
+ head.delete(:server_side_encryption)
159
+ head.delete(:ssekms_key_id)
160
+ }
158
161
  end
159
162
 
160
163
  def default_part_size(source_size)