aws-sdk-s3 1.206.0 → 1.212.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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +41 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/client.rb +6 -6
  5. data/lib/aws-sdk-s3/client_api.rb +2 -0
  6. data/lib/aws-sdk-s3/customizations.rb +1 -0
  7. data/lib/aws-sdk-s3/encryption/client.rb +2 -2
  8. data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +2 -0
  9. data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +2 -0
  10. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +2 -0
  11. data/lib/aws-sdk-s3/encryptionV2/client.rb +98 -23
  12. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +7 -162
  13. data/lib/aws-sdk-s3/encryptionV2/decryption.rb +205 -0
  14. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +17 -0
  15. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +2 -0
  16. data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +2 -0
  17. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +8 -0
  18. data/lib/aws-sdk-s3/encryptionV2/utils.rb +5 -0
  19. data/lib/aws-sdk-s3/encryptionV3/client.rb +885 -0
  20. data/lib/aws-sdk-s3/encryptionV3/decrypt_handler.rb +98 -0
  21. data/lib/aws-sdk-s3/encryptionV3/decryption.rb +244 -0
  22. data/lib/aws-sdk-s3/encryptionV3/default_cipher_provider.rb +159 -0
  23. data/lib/aws-sdk-s3/encryptionV3/default_key_provider.rb +35 -0
  24. data/lib/aws-sdk-s3/encryptionV3/encrypt_handler.rb +98 -0
  25. data/lib/aws-sdk-s3/encryptionV3/errors.rb +47 -0
  26. data/lib/aws-sdk-s3/encryptionV3/io_auth_decrypter.rb +60 -0
  27. data/lib/aws-sdk-s3/encryptionV3/io_decrypter.rb +35 -0
  28. data/lib/aws-sdk-s3/encryptionV3/io_encrypter.rb +84 -0
  29. data/lib/aws-sdk-s3/encryptionV3/key_provider.rb +28 -0
  30. data/lib/aws-sdk-s3/encryptionV3/kms_cipher_provider.rb +159 -0
  31. data/lib/aws-sdk-s3/encryptionV3/materials.rb +58 -0
  32. data/lib/aws-sdk-s3/encryptionV3/utils.rb +321 -0
  33. data/lib/aws-sdk-s3/encryption_v2.rb +1 -0
  34. data/lib/aws-sdk-s3/encryption_v3.rb +24 -0
  35. data/lib/aws-sdk-s3/endpoint_provider.rb +21 -18
  36. data/lib/aws-sdk-s3/file_uploader.rb +9 -1
  37. data/lib/aws-sdk-s3/multipart_file_uploader.rb +4 -1
  38. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +18 -5
  39. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +58 -34
  40. data/lib/aws-sdk-s3/transfer_manager.rb +18 -0
  41. data/lib/aws-sdk-s3.rb +1 -1
  42. data/sig/client.rbs +1 -1
  43. data/sig/types.rbs +1 -1
  44. metadata +19 -3
@@ -205,6 +205,11 @@ module Aws
205
205
  # @option options [Integer] :thread_count (10) Customize threads used in the multipart upload.
206
206
  # Only used when no custom executor is provided (creates {DefaultExecutor} with the given thread count).
207
207
  #
208
+ # @option option [Integer] :http_chunk_size (16384) Size in bytes for each chunk when streaming request bodies
209
+ # over HTTP. Controls the buffer size used when sending data to S3. Larger values may improve throughput by
210
+ # reducing the number of network writes, but use more memory. Custom values must be at least 16KB.
211
+ # Only Ruby MRI is supported.
212
+ #
208
213
  # @option options [Proc] :progress_callback (nil)
209
214
  # A Proc that will be called when each chunk of the upload is sent.
210
215
  # It will be invoked with `[bytes_read]` and `[total_sizes]`.
@@ -221,9 +226,22 @@ module Aws
221
226
  # @see Client#upload_part
222
227
  def upload_file(source, bucket:, key:, **options)
223
228
  upload_opts = options.merge(bucket: bucket, key: key)
229
+ http_chunk_size =
230
+ if defined?(JRUBY_VERSION)
231
+ nil
232
+ else
233
+ chunk = upload_opts.delete(:http_chunk_size)
234
+ if chunk && chunk < Aws::Plugins::ChecksumAlgorithm::DEFAULT_TRAILER_CHUNK_SIZE
235
+ raise ArgumentError, ':http_chunk_size must be at least 16384 bytes (16KB)'
236
+ end
237
+
238
+ chunk
239
+ end
240
+
224
241
  executor = @executor || DefaultExecutor.new(max_threads: upload_opts.delete(:thread_count))
225
242
  uploader = FileUploader.new(
226
243
  multipart_threshold: upload_opts.delete(:multipart_threshold),
244
+ http_chunk_size: http_chunk_size,
227
245
  client: @client,
228
246
  executor: executor
229
247
  )
data/lib/aws-sdk-s3.rb CHANGED
@@ -75,7 +75,7 @@ module Aws::S3
75
75
  autoload :ObjectVersion, 'aws-sdk-s3/object_version'
76
76
  autoload :EventStreams, 'aws-sdk-s3/event_streams'
77
77
 
78
- GEM_VERSION = '1.206.0'
78
+ GEM_VERSION = '1.212.0'
79
79
 
80
80
  end
81
81
 
data/sig/client.rbs CHANGED
@@ -1564,7 +1564,7 @@ module Aws
1564
1564
  }?,
1565
1565
  id: ::String,
1566
1566
  included_object_versions: ("All" | "Current"),
1567
- optional_fields: Array[("Size" | "LastModifiedDate" | "StorageClass" | "ETag" | "IsMultipartUploaded" | "ReplicationStatus" | "EncryptionStatus" | "ObjectLockRetainUntilDate" | "ObjectLockMode" | "ObjectLockLegalHoldStatus" | "IntelligentTieringAccessTier" | "BucketKeyStatus" | "ChecksumAlgorithm" | "ObjectAccessControlList" | "ObjectOwner")]?,
1567
+ optional_fields: Array[("Size" | "LastModifiedDate" | "StorageClass" | "ETag" | "IsMultipartUploaded" | "ReplicationStatus" | "EncryptionStatus" | "ObjectLockRetainUntilDate" | "ObjectLockMode" | "ObjectLockLegalHoldStatus" | "IntelligentTieringAccessTier" | "BucketKeyStatus" | "ChecksumAlgorithm" | "ObjectAccessControlList" | "ObjectOwner" | "LifecycleExpirationDate")]?,
1568
1568
  schedule: {
1569
1569
  frequency: ("Daily" | "Weekly")
1570
1570
  }
data/sig/types.rbs CHANGED
@@ -1354,7 +1354,7 @@ module Aws::S3
1354
1354
  attr_accessor filter: Types::InventoryFilter
1355
1355
  attr_accessor id: ::String
1356
1356
  attr_accessor included_object_versions: ("All" | "Current")
1357
- attr_accessor optional_fields: ::Array[("Size" | "LastModifiedDate" | "StorageClass" | "ETag" | "IsMultipartUploaded" | "ReplicationStatus" | "EncryptionStatus" | "ObjectLockRetainUntilDate" | "ObjectLockMode" | "ObjectLockLegalHoldStatus" | "IntelligentTieringAccessTier" | "BucketKeyStatus" | "ChecksumAlgorithm" | "ObjectAccessControlList" | "ObjectOwner")]
1357
+ attr_accessor optional_fields: ::Array[("Size" | "LastModifiedDate" | "StorageClass" | "ETag" | "IsMultipartUploaded" | "ReplicationStatus" | "EncryptionStatus" | "ObjectLockRetainUntilDate" | "ObjectLockMode" | "ObjectLockLegalHoldStatus" | "IntelligentTieringAccessTier" | "BucketKeyStatus" | "ChecksumAlgorithm" | "ObjectAccessControlList" | "ObjectOwner" | "LifecycleExpirationDate")]
1358
1358
  attr_accessor schedule: Types::InventorySchedule
1359
1359
  SENSITIVE: []
1360
1360
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.206.0
4
+ version: 1.212.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
@@ -46,7 +46,7 @@ dependencies:
46
46
  version: '3'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 3.234.0
49
+ version: 3.241.4
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -56,7 +56,7 @@ dependencies:
56
56
  version: '3'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 3.234.0
59
+ version: 3.241.4
60
60
  description: Official AWS Ruby gem for Amazon Simple Storage Service (Amazon S3).
61
61
  This gem is part of the AWS SDK for Ruby.
62
62
  email:
@@ -112,6 +112,7 @@ files:
112
112
  - lib/aws-sdk-s3/encryption/utils.rb
113
113
  - lib/aws-sdk-s3/encryptionV2/client.rb
114
114
  - lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb
115
+ - lib/aws-sdk-s3/encryptionV2/decryption.rb
115
116
  - lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb
116
117
  - lib/aws-sdk-s3/encryptionV2/default_key_provider.rb
117
118
  - lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb
@@ -123,7 +124,22 @@ files:
123
124
  - lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb
124
125
  - lib/aws-sdk-s3/encryptionV2/materials.rb
125
126
  - lib/aws-sdk-s3/encryptionV2/utils.rb
127
+ - lib/aws-sdk-s3/encryptionV3/client.rb
128
+ - lib/aws-sdk-s3/encryptionV3/decrypt_handler.rb
129
+ - lib/aws-sdk-s3/encryptionV3/decryption.rb
130
+ - lib/aws-sdk-s3/encryptionV3/default_cipher_provider.rb
131
+ - lib/aws-sdk-s3/encryptionV3/default_key_provider.rb
132
+ - lib/aws-sdk-s3/encryptionV3/encrypt_handler.rb
133
+ - lib/aws-sdk-s3/encryptionV3/errors.rb
134
+ - lib/aws-sdk-s3/encryptionV3/io_auth_decrypter.rb
135
+ - lib/aws-sdk-s3/encryptionV3/io_decrypter.rb
136
+ - lib/aws-sdk-s3/encryptionV3/io_encrypter.rb
137
+ - lib/aws-sdk-s3/encryptionV3/key_provider.rb
138
+ - lib/aws-sdk-s3/encryptionV3/kms_cipher_provider.rb
139
+ - lib/aws-sdk-s3/encryptionV3/materials.rb
140
+ - lib/aws-sdk-s3/encryptionV3/utils.rb
126
141
  - lib/aws-sdk-s3/encryption_v2.rb
142
+ - lib/aws-sdk-s3/encryption_v3.rb
127
143
  - lib/aws-sdk-s3/endpoint_parameters.rb
128
144
  - lib/aws-sdk-s3/endpoint_provider.rb
129
145
  - lib/aws-sdk-s3/endpoints.rb