aws-sdk-s3 1.232.1 → 1.232.3

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: 1e53747d17067bcac309f1ce7937b8c9a05760df36e34c63f9da0c2dd428f3ad
4
+ data.tar.gz: 5c0eaa9a807e3035ca1550cdef86e340a48c1cc715ec81d0ff26dcf1d892f13d
5
5
  SHA512:
6
- metadata.gz: ebd8b1083b8e6421dafeeed2ac4ad91d7810fdedf5d88d56c7a3e75d81636cd57ddc7e20cb97824db9acf1858a3e4f8a63155b48610fa39eebafce059d9576ee
7
- data.tar.gz: f0f726ac4e9239ea0cae007668b7f8720c6ec2a314c8fe72b5db0220be5cc1508d2269634f759ab8522da78e151814d9b2d0753b1493cc5afd0a7be9b098944c
6
+ metadata.gz: 2477bd4aa0776bbb4e050c3104d43289bb7885dd962b121215f35411435fe4ad1bfcbb0becc8e8167dc6684da467a36c8c6fa0c4d00d79844cf7fc50fcfa613a
7
+ data.tar.gz: cd587d89b38d9fdf9c92f1ec3f1925dff7361d6505d27d191fb81171e020fa9222bf8351f3e1ac2beffc2c9870eeff60d30b842a0494b1f3bd93956839fe9edc
data/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.232.3 (2026-09-28)
5
+ ------------------
6
+
7
+ * 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.
8
+
9
+ * Issue - Fix `:thread_count` being ignored by the deprecated `Object#download_file`, which always used the default thread count.
10
+
11
+ 1.232.2 (2026-09-25)
12
+ ------------------
13
+
14
+ * 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).
15
+
4
16
  1.232.1 (2026-09-16)
5
17
  ------------------
6
18
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.232.1
1
+ 1.232.3
@@ -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.232.3'
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.232.3'
79
79
 
80
80
  end
81
81
 
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.232.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services