aws-sdk-s3 1.232.1 → 1.233.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b94c399221f0a258a78a6339e0887c7cfed857495e036fc96dc1c71552eeb02a
4
- data.tar.gz: b000a464b400582cdc17a7295d7601a718e51b91169c1a1af03e8712584d6cdd
3
+ metadata.gz: 39ab335ff541d8651defd1a742def7371faeabe89c6a3aeafef98e7130c40e56
4
+ data.tar.gz: 6215b21914e2d2a008a269c4cbcc28745d9d8e0b5e27eeaf77f063723060a107
5
5
  SHA512:
6
- metadata.gz: ebd8b1083b8e6421dafeeed2ac4ad91d7810fdedf5d88d56c7a3e75d81636cd57ddc7e20cb97824db9acf1858a3e4f8a63155b48610fa39eebafce059d9576ee
7
- data.tar.gz: f0f726ac4e9239ea0cae007668b7f8720c6ec2a314c8fe72b5db0220be5cc1508d2269634f759ab8522da78e151814d9b2d0753b1493cc5afd0a7be9b098944c
6
+ metadata.gz: 973291423658781b53f54c6d54d3d5a836f605b9169b9963daae754870e695b88850e573e1682ec872c4af984205653c50673c95a24e2aabfb8103ed3bdf1c04
7
+ data.tar.gz: 1386d963bb662bacfddc26dbc4aa9bebb43d7aab54c9abbc7306e95c1ebf47d2b057f6ac1b0b6f4a411da77450170c91a560988f91cf33bd79defb1fd8b1c471
data/CHANGELOG.md CHANGED
@@ -1,6 +1,23 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.233.0 (2026-09-30)
5
+ ------------------
6
+
7
+ * Feature - Amazon S3 adds a new optional S3 Inventory field, IntelligentTieringReferenceDate, reporting the reference date S3 Intelligent-Tiering uses to evaluate an object's tier-transition eligibility. The value is populated for objects in the Intelligent-Tiering storage class and left blank for others.
8
+
9
+ 1.232.3 (2026-09-28)
10
+ ------------------
11
+
12
+ * Issue - Remove `:thread_count` from transfer options even when a custom `:executor` is configured on `TransferManager`, fixing an `ArgumentError` raised on single-part `upload_file` calls.
13
+
14
+ * Issue - Fix `:thread_count` being ignored by the deprecated `Object#download_file`, which always used the default thread count.
15
+
16
+ 1.232.2 (2026-09-25)
17
+ ------------------
18
+
19
+ * Issue - Ensure the internally-created executor is shutdown on error in `TransferManager` and `Aws::S3::Object` resource methods, preventing leaked worker threads on multipart transfer failures (#3419).
20
+
4
21
  1.232.1 (2026-09-16)
5
22
  ------------------
6
23
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.232.1
1
+ 1.233.0
@@ -7723,7 +7723,7 @@ module Aws::S3
7723
7723
  # resp.inventory_configuration.id #=> String
7724
7724
  # resp.inventory_configuration.included_object_versions #=> String, one of "All", "Current"
7725
7725
  # resp.inventory_configuration.optional_fields #=> Array
7726
- # resp.inventory_configuration.optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus", "ObjectLockEventHoldStatus", "ObjectLockEventHoldDuration", "IntelligentTieringAccessTier", "BucketKeyStatus", "ChecksumAlgorithm", "ObjectAccessControlList", "ObjectOwner", "LifecycleExpirationDate"
7726
+ # resp.inventory_configuration.optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus", "ObjectLockEventHoldStatus", "ObjectLockEventHoldDuration", "IntelligentTieringAccessTier", "BucketKeyStatus", "ChecksumAlgorithm", "ObjectAccessControlList", "ObjectOwner", "LifecycleExpirationDate", "IntelligentTieringReferenceDate"
7727
7727
  # resp.inventory_configuration.schedule.frequency #=> String, one of "Daily", "Weekly"
7728
7728
  #
7729
7729
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfiguration AWS API Documentation
@@ -12760,7 +12760,7 @@ module Aws::S3
12760
12760
  # resp.inventory_configuration_list[0].id #=> String
12761
12761
  # resp.inventory_configuration_list[0].included_object_versions #=> String, one of "All", "Current"
12762
12762
  # resp.inventory_configuration_list[0].optional_fields #=> Array
12763
- # resp.inventory_configuration_list[0].optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus", "ObjectLockEventHoldStatus", "ObjectLockEventHoldDuration", "IntelligentTieringAccessTier", "BucketKeyStatus", "ChecksumAlgorithm", "ObjectAccessControlList", "ObjectOwner", "LifecycleExpirationDate"
12763
+ # resp.inventory_configuration_list[0].optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus", "ObjectLockEventHoldStatus", "ObjectLockEventHoldDuration", "IntelligentTieringAccessTier", "BucketKeyStatus", "ChecksumAlgorithm", "ObjectAccessControlList", "ObjectOwner", "LifecycleExpirationDate", "IntelligentTieringReferenceDate"
12764
12764
  # resp.inventory_configuration_list[0].schedule.frequency #=> String, one of "Daily", "Weekly"
12765
12765
  # resp.is_truncated #=> Boolean
12766
12766
  # resp.next_continuation_token #=> String
@@ -16319,7 +16319,7 @@ module Aws::S3
16319
16319
  # },
16320
16320
  # id: "InventoryId", # required
16321
16321
  # included_object_versions: "All", # required, accepts All, Current
16322
- # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus, ObjectLockRetainUntilDate, ObjectLockMode, ObjectLockLegalHoldStatus, ObjectLockEventHoldStatus, ObjectLockEventHoldDuration, IntelligentTieringAccessTier, BucketKeyStatus, ChecksumAlgorithm, ObjectAccessControlList, ObjectOwner, LifecycleExpirationDate
16322
+ # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus, ObjectLockRetainUntilDate, ObjectLockMode, ObjectLockLegalHoldStatus, ObjectLockEventHoldStatus, ObjectLockEventHoldDuration, IntelligentTieringAccessTier, BucketKeyStatus, ChecksumAlgorithm, ObjectAccessControlList, ObjectOwner, LifecycleExpirationDate, IntelligentTieringReferenceDate
16323
16323
  # schedule: { # required
16324
16324
  # frequency: "Daily", # required, accepts Daily, Weekly
16325
16325
  # },
@@ -24209,7 +24209,7 @@ module Aws::S3
24209
24209
  tracer: tracer
24210
24210
  )
24211
24211
  context[:gem_name] = 'aws-sdk-s3'
24212
- context[:gem_version] = '1.232.1'
24212
+ context[:gem_version] = '1.233.0'
24213
24213
  Seahorse::Client::Request.new(handlers, context)
24214
24214
  end
24215
24215
 
@@ -406,17 +406,20 @@ module Aws
406
406
  def upload_stream(options = {}, &block)
407
407
  upload_opts = options.merge(bucket: bucket_name, key: key)
408
408
  executor = DefaultExecutor.new(max_threads: upload_opts.delete(:thread_count))
409
- uploader = MultipartStreamUploader.new(
410
- client: client,
411
- executor: executor,
412
- tempfile: upload_opts.delete(:tempfile),
413
- part_size: upload_opts.delete(:part_size)
414
- )
415
- Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
416
- uploader.upload(upload_opts, &block)
409
+ begin
410
+ uploader = MultipartStreamUploader.new(
411
+ client: client,
412
+ executor: executor,
413
+ tempfile: upload_opts.delete(:tempfile),
414
+ part_size: upload_opts.delete(:part_size)
415
+ )
416
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
417
+ uploader.upload(upload_opts, &block)
418
+ end
419
+ true
420
+ ensure
421
+ executor.shutdown
417
422
  end
418
- executor.shutdown
419
- true
420
423
  end
421
424
  deprecated(:upload_stream, use: 'Aws::S3::TransferManager#upload_stream', version: 'next major version')
422
425
 
@@ -480,17 +483,20 @@ module Aws
480
483
  def upload_file(source, options = {})
481
484
  upload_opts = options.merge(bucket: bucket_name, key: key)
482
485
  executor = DefaultExecutor.new(max_threads: upload_opts.delete(:thread_count))
483
- uploader = FileUploader.new(
484
- client: client,
485
- executor: executor,
486
- multipart_threshold: upload_opts.delete(:multipart_threshold)
487
- )
488
- response = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
489
- uploader.upload(source, upload_opts)
486
+ begin
487
+ uploader = FileUploader.new(
488
+ client: client,
489
+ executor: executor,
490
+ multipart_threshold: upload_opts.delete(:multipart_threshold)
491
+ )
492
+ response = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
493
+ uploader.upload(source, upload_opts)
494
+ end
495
+ yield response if block_given?
496
+ true
497
+ ensure
498
+ executor.shutdown
490
499
  end
491
- yield response if block_given?
492
- executor.shutdown
493
- true
494
500
  end
495
501
  deprecated(:upload_file, use: 'Aws::S3::TransferManager#upload_file', version: 'next major version')
496
502
 
@@ -561,13 +567,16 @@ module Aws
561
567
  # @see Client#head_object
562
568
  def download_file(destination, options = {})
563
569
  download_opts = options.merge(bucket: bucket_name, key: key)
564
- executor = DefaultExecutor.new(max_threads: download_opts.delete([:thread_count]))
565
- downloader = FileDownloader.new(client: client, executor: executor)
566
- Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
567
- downloader.download(destination, download_opts)
570
+ executor = DefaultExecutor.new(max_threads: download_opts.delete(:thread_count))
571
+ begin
572
+ downloader = FileDownloader.new(client: client, executor: executor)
573
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
574
+ downloader.download(destination, download_opts)
575
+ end
576
+ true
577
+ ensure
578
+ executor.shutdown
568
579
  end
569
- executor.shutdown
570
- true
571
580
  end
572
581
  deprecated(:download_file, use: 'Aws::S3::TransferManager#download_file', version: 'next major version')
573
582
 
@@ -160,11 +160,14 @@ module Aws
160
160
  # * `:errors` - Array of errors for failed downloads (only present when failures occur)
161
161
  def download_directory(destination, bucket:, **options)
162
162
  Aws::Plugins::UserAgent.metric('S3_TRANSFER', 'S3_TRANSFER_DOWNLOAD_DIRECTORY') do
163
- executor = @executor || DefaultExecutor.new(max_threads: options.delete(:thread_count))
164
- downloader = DirectoryDownloader.new(client: @client, executor: executor, logger: @logger)
165
- result = downloader.download(destination, bucket: bucket, **options)
166
- executor.shutdown unless @executor
167
- result
163
+ thread_count = options.delete(:thread_count)
164
+ executor = @executor || DefaultExecutor.new(max_threads: thread_count)
165
+ begin
166
+ downloader = DirectoryDownloader.new(client: @client, executor: executor, logger: @logger)
167
+ downloader.download(destination, bucket: bucket, **options)
168
+ ensure
169
+ executor.shutdown unless @executor
170
+ end
168
171
  end
169
172
  end
170
173
 
@@ -245,11 +248,15 @@ module Aws
245
248
  # @see Client#head_object
246
249
  def download_file(destination, bucket:, key:, **options)
247
250
  download_opts = options.merge(bucket: bucket, key: key)
248
- executor = @executor || DefaultExecutor.new(max_threads: download_opts.delete(:thread_count))
249
- downloader = FileDownloader.new(client: @client, executor: executor)
250
- downloader.download(destination, download_opts)
251
- executor.shutdown unless @executor
252
- true
251
+ thread_count = download_opts.delete(:thread_count)
252
+ executor = @executor || DefaultExecutor.new(max_threads: thread_count)
253
+ begin
254
+ downloader = FileDownloader.new(client: @client, executor: executor)
255
+ downloader.download(destination, download_opts)
256
+ true
257
+ ensure
258
+ executor.shutdown unless @executor
259
+ end
253
260
  end
254
261
 
255
262
  # Uploads all files under the given directory to the provided S3 bucket.
@@ -360,11 +367,14 @@ module Aws
360
367
  # * `:errors` - Array of error objects for failed uploads (only present when failures occur)
361
368
  def upload_directory(source, bucket:, **options)
362
369
  Aws::Plugins::UserAgent.metric('S3_TRANSFER', 'S3_TRANSFER_UPLOAD_DIRECTORY') do
363
- executor = @executor || DefaultExecutor.new(max_threads: options.delete(:thread_count))
364
- uploader = DirectoryUploader.new(client: @client, executor: executor, logger: @logger)
365
- result = uploader.upload(source, bucket, **options.merge(http_chunk_size: resolve_http_chunk_size(options)))
366
- executor.shutdown unless @executor
367
- result
370
+ thread_count = options.delete(:thread_count)
371
+ executor = @executor || DefaultExecutor.new(max_threads: thread_count)
372
+ begin
373
+ uploader = DirectoryUploader.new(client: @client, executor: executor, logger: @logger)
374
+ uploader.upload(source, bucket, **options.merge(http_chunk_size: resolve_http_chunk_size(options)))
375
+ ensure
376
+ executor.shutdown unless @executor
377
+ end
368
378
  end
369
379
  end
370
380
 
@@ -443,18 +453,21 @@ module Aws
443
453
  def upload_file(source, bucket:, key:, **options)
444
454
  upload_opts = options.merge(bucket: bucket, key: key)
445
455
  http_chunk_size = resolve_http_chunk_size(upload_opts)
446
-
447
- executor = @executor || DefaultExecutor.new(max_threads: upload_opts.delete(:thread_count))
448
- uploader = FileUploader.new(
449
- multipart_threshold: upload_opts.delete(:multipart_threshold),
450
- http_chunk_size: http_chunk_size,
451
- client: @client,
452
- executor: executor
453
- )
454
- response = uploader.upload(source, upload_opts)
455
- yield response if block_given?
456
- executor.shutdown unless @executor
457
- true
456
+ thread_count = upload_opts.delete(:thread_count)
457
+ executor = @executor || DefaultExecutor.new(max_threads: thread_count)
458
+ begin
459
+ uploader = FileUploader.new(
460
+ multipart_threshold: upload_opts.delete(:multipart_threshold),
461
+ http_chunk_size: http_chunk_size,
462
+ client: @client,
463
+ executor: executor
464
+ )
465
+ response = uploader.upload(source, upload_opts)
466
+ yield response if block_given?
467
+ true
468
+ ensure
469
+ executor.shutdown unless @executor
470
+ end
458
471
  end
459
472
 
460
473
  # Uploads a stream in a streaming fashion to S3.
@@ -511,16 +524,20 @@ module Aws
511
524
  # @see Client#upload_part
512
525
  def upload_stream(bucket:, key:, **options, &block)
513
526
  upload_opts = options.merge(bucket: bucket, key: key)
514
- executor = @executor || DefaultExecutor.new(max_threads: upload_opts.delete(:thread_count))
515
- uploader = MultipartStreamUploader.new(
516
- client: @client,
517
- executor: executor,
518
- tempfile: upload_opts.delete(:tempfile),
519
- part_size: upload_opts.delete(:part_size)
520
- )
521
- uploader.upload(upload_opts, &block)
522
- executor.shutdown unless @executor
523
- true
527
+ thread_count = upload_opts.delete(:thread_count)
528
+ executor = @executor || DefaultExecutor.new(max_threads: thread_count)
529
+ begin
530
+ uploader = MultipartStreamUploader.new(
531
+ client: @client,
532
+ executor: executor,
533
+ tempfile: upload_opts.delete(:tempfile),
534
+ part_size: upload_opts.delete(:part_size)
535
+ )
536
+ uploader.upload(upload_opts, &block)
537
+ true
538
+ ensure
539
+ executor.shutdown unless @executor
540
+ end
524
541
  end
525
542
 
526
543
  private
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.232.1'
78
+ GEM_VERSION = '1.233.0'
79
79
 
80
80
  end
81
81
 
data/sig/client.rbs CHANGED
@@ -1671,7 +1671,7 @@ module Aws
1671
1671
  }?,
1672
1672
  id: ::String,
1673
1673
  included_object_versions: ("All" | "Current"),
1674
- optional_fields: Array[("Size" | "LastModifiedDate" | "StorageClass" | "ETag" | "IsMultipartUploaded" | "ReplicationStatus" | "EncryptionStatus" | "ObjectLockRetainUntilDate" | "ObjectLockMode" | "ObjectLockLegalHoldStatus" | "ObjectLockEventHoldStatus" | "ObjectLockEventHoldDuration" | "IntelligentTieringAccessTier" | "BucketKeyStatus" | "ChecksumAlgorithm" | "ObjectAccessControlList" | "ObjectOwner" | "LifecycleExpirationDate")]?,
1674
+ optional_fields: Array[("Size" | "LastModifiedDate" | "StorageClass" | "ETag" | "IsMultipartUploaded" | "ReplicationStatus" | "EncryptionStatus" | "ObjectLockRetainUntilDate" | "ObjectLockMode" | "ObjectLockLegalHoldStatus" | "ObjectLockEventHoldStatus" | "ObjectLockEventHoldDuration" | "IntelligentTieringAccessTier" | "BucketKeyStatus" | "ChecksumAlgorithm" | "ObjectAccessControlList" | "ObjectOwner" | "LifecycleExpirationDate" | "IntelligentTieringReferenceDate")]?,
1675
1675
  schedule: {
1676
1676
  frequency: ("Daily" | "Weekly")
1677
1677
  }
data/sig/types.rbs CHANGED
@@ -1515,7 +1515,7 @@ module Aws::S3
1515
1515
  attr_accessor filter: Types::InventoryFilter
1516
1516
  attr_accessor id: ::String
1517
1517
  attr_accessor included_object_versions: ("All" | "Current")
1518
- attr_accessor optional_fields: ::Array[("Size" | "LastModifiedDate" | "StorageClass" | "ETag" | "IsMultipartUploaded" | "ReplicationStatus" | "EncryptionStatus" | "ObjectLockRetainUntilDate" | "ObjectLockMode" | "ObjectLockLegalHoldStatus" | "ObjectLockEventHoldStatus" | "ObjectLockEventHoldDuration" | "IntelligentTieringAccessTier" | "BucketKeyStatus" | "ChecksumAlgorithm" | "ObjectAccessControlList" | "ObjectOwner" | "LifecycleExpirationDate")]
1518
+ attr_accessor optional_fields: ::Array[("Size" | "LastModifiedDate" | "StorageClass" | "ETag" | "IsMultipartUploaded" | "ReplicationStatus" | "EncryptionStatus" | "ObjectLockRetainUntilDate" | "ObjectLockMode" | "ObjectLockLegalHoldStatus" | "ObjectLockEventHoldStatus" | "ObjectLockEventHoldDuration" | "IntelligentTieringAccessTier" | "BucketKeyStatus" | "ChecksumAlgorithm" | "ObjectAccessControlList" | "ObjectOwner" | "LifecycleExpirationDate" | "IntelligentTieringReferenceDate")]
1519
1519
  attr_accessor schedule: Types::InventorySchedule
1520
1520
  SENSITIVE: []
1521
1521
  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.232.1
4
+ version: 1.233.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services