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 +4 -4
- data/CHANGELOG.md +12 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-s3/client.rb +1 -1
- data/lib/aws-sdk-s3/customizations/object.rb +35 -26
- data/lib/aws-sdk-s3/transfer_manager.rb +54 -37
- data/lib/aws-sdk-s3.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1e53747d17067bcac309f1ce7937b8c9a05760df36e34c63f9da0c2dd428f3ad
|
|
4
|
+
data.tar.gz: 5c0eaa9a807e3035ca1550cdef86e340a48c1cc715ec81d0ff26dcf1d892f13d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.232.3
|
data/lib/aws-sdk-s3/client.rb
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
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
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
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(
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
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
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
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
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
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
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
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:
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
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
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
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