aws-sdk-s3 1.186.0 → 1.187.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: 19666bc9138c7fc657115eb675f1c46b170c18aa53d9304ce83e359244e5837b
4
- data.tar.gz: 0f3c295fa25bf720226c4a1050baacd6ed446d48663c5ea8005637bb4642990c
3
+ metadata.gz: 25f340cf3b28573ad256e91c2683cf14cfec9c2d1d814c2cdc6a35c63e423663
4
+ data.tar.gz: 110419b0f840fb39c7b102d5c83688c65b5b6d4267ce986420886218ef5ef0a2
5
5
  SHA512:
6
- metadata.gz: c4aebed9bdf712cf27aa46d8497c01be15d29bdc7c85f2b055c230d8d4917d6a4da56c0cd2228be9544725164288a58e717f989d443b4ae0fde80725d4eeb76f
7
- data.tar.gz: cda031dbe1f6ce1a9c2769f5fa674dc623ae9f72baedfeae3875887b775cab1550e892b89bf648e1e4d8a40379689a303a90c58e95fbf9e88f266f5952bd345d
6
+ metadata.gz: cfb5d8c4dedf1deea6d85fdfab79473504c0ef959b58fe837a1acd5e17d89fc3f64fc1a9fe7c6bd523691dbb6b8c438ad06c410160c97303d969f2547e11d012
7
+ data.tar.gz: 2413bcadc4dab84b6c98b223a700700817542f1b0b4071100231769ece33fb6a3247ca03e2a80474f13037e630affef4516c6c59ca406103a1d76f86c17b7a3a
data/CHANGELOG.md CHANGED
@@ -1,6 +1,17 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.187.0 (2025-05-28)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ * Issue - Signal data in http response listeners prior to writing, so that data can be inspected or verified before potential mutation.
10
+
11
+ 1.186.1 (2025-05-15)
12
+ ------------------
13
+ * Issue - Abort multipart download if object is modified during download.
14
+
4
15
  1.186.0 (2025-05-12)
5
16
  ------------------
6
17
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.186.0
1
+ 1.187.0
@@ -20680,7 +20680,7 @@ module Aws::S3
20680
20680
  tracer: tracer
20681
20681
  )
20682
20682
  context[:gem_name] = 'aws-sdk-s3'
20683
- context[:gem_version] = '1.186.0'
20683
+ context[:gem_version] = '1.187.0'
20684
20684
  Seahorse::Client::Request.new(handlers, context)
20685
20685
  end
20686
20686
 
@@ -43,7 +43,7 @@ module Aws
43
43
  when 'get_range'
44
44
  if @chunk_size
45
45
  resp = @client.head_object(@params)
46
- multithreaded_get_by_ranges(resp.content_length)
46
+ multithreaded_get_by_ranges(resp.content_length, resp.etag)
47
47
  else
48
48
  msg = 'In :get_range mode, :chunk_size must be provided'
49
49
  raise ArgumentError, msg
@@ -71,7 +71,7 @@ module Aws
71
71
  if resp.content_length <= MIN_CHUNK_SIZE
72
72
  single_request
73
73
  else
74
- multithreaded_get_by_ranges(resp.content_length)
74
+ multithreaded_get_by_ranges(resp.content_length, resp.etag)
75
75
  end
76
76
  else
77
77
  # partNumber is an option
@@ -79,18 +79,18 @@ module Aws
79
79
  if resp.content_length <= MIN_CHUNK_SIZE
80
80
  single_request
81
81
  else
82
- compute_mode(resp.content_length, count)
82
+ compute_mode(resp.content_length, count, resp.etag)
83
83
  end
84
84
  end
85
85
  end
86
86
 
87
- def compute_mode(file_size, count)
87
+ def compute_mode(file_size, count, etag)
88
88
  chunk_size = compute_chunk(file_size)
89
89
  part_size = (file_size.to_f / count.to_f).ceil
90
90
  if chunk_size < part_size
91
- multithreaded_get_by_ranges(file_size)
91
+ multithreaded_get_by_ranges(file_size, etag)
92
92
  else
93
- multithreaded_get_by_parts(count, file_size)
93
+ multithreaded_get_by_parts(count, file_size, etag)
94
94
  end
95
95
  end
96
96
 
@@ -122,7 +122,7 @@ module Aws
122
122
  chunks.each_slice(@thread_count).to_a
123
123
  end
124
124
 
125
- def multithreaded_get_by_ranges(file_size)
125
+ def multithreaded_get_by_ranges(file_size, etag)
126
126
  offset = 0
127
127
  default_chunk_size = compute_chunk(file_size)
128
128
  chunks = []
@@ -134,7 +134,7 @@ module Aws
134
134
  chunks << Part.new(
135
135
  part_number: part_number,
136
136
  size: (progress-offset),
137
- params: @params.merge(range: range)
137
+ params: @params.merge(range: range, if_match: etag)
138
138
  )
139
139
  part_number += 1
140
140
  offset = progress
@@ -142,9 +142,9 @@ module Aws
142
142
  download_in_threads(PartList.new(chunks), file_size)
143
143
  end
144
144
 
145
- def multithreaded_get_by_parts(n_parts, total_size)
145
+ def multithreaded_get_by_parts(n_parts, total_size, etag)
146
146
  parts = (1..n_parts).map do |part|
147
- Part.new(part_number: part, params: @params.merge(part_number: part))
147
+ Part.new(part_number: part, params: @params.merge(part_number: part, if_match: etag))
148
148
  end
149
149
  download_in_threads(PartList.new(parts), total_size)
150
150
  end
@@ -62,18 +62,16 @@ module Aws
62
62
  class Handler < Seahorse::Client::Handler
63
63
 
64
64
  def call(context)
65
- target = context.params[:response_target] || context[:response_target]
66
-
67
65
  # retry is only supported when range is NOT set on the initial request
68
- if supported_target?(target) && !context.params[:range]
69
- add_event_listeners(context, target)
66
+ if supported_target?(context) && !context.params[:range]
67
+ add_event_listeners(context)
70
68
  end
71
69
  @handler.call(context)
72
70
  end
73
71
 
74
72
  private
75
73
 
76
- def add_event_listeners(context, target)
74
+ def add_event_listeners(context)
77
75
  context.http_response.on_headers(200..299) do
78
76
  case context.http_response.body
79
77
  when Seahorse::Client::BlockIO then
@@ -123,8 +121,8 @@ module Aws
123
121
  context.http_response.body.is_a?(RetryableManagedFile)
124
122
  end
125
123
 
126
- def supported_target?(target)
127
- case target
124
+ def supported_target?(context)
125
+ case context[:response_target]
128
126
  when Proc, String, Pathname then true
129
127
  else false
130
128
  end
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.186.0'
78
+ GEM_VERSION = '1.187.0'
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.186.0
4
+ version: 1.187.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.216.0
49
+ version: 3.224.1
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.216.0
59
+ version: 3.224.1
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: