aws-sdk-s3 1.152.2 → 1.152.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9f58eb23517500bb537d985b462dbe4e7260a24fd31cbbe1211c60e058b325e9
4
- data.tar.gz: c4511cbafb037323c68e2cd009897783f2574ce36a7521beea2cd98b14226917
3
+ metadata.gz: f2482fd08d0cf7ae9c7c6d788012eade6f874ea94884406a3c0dc578fda76144
4
+ data.tar.gz: f96e49214b5875df09f6240f95c92bb31a8043d4df965d6996bbb43b681904be
5
5
  SHA512:
6
- metadata.gz: d2e085ebe17353842130b4a896d8ef99b1c847ddbd13c43c996d9469042c2f9c6c93b23cd205cf5312177de36f7d3a431c0ed902df9bf8fd3fd4ba9a06763d53
7
- data.tar.gz: 53577dfee6c983413b911a1b45073f8e1e5b296bdd89f13395f9bfc1e1ddd2c8960271fef96301bf5384dc0cce2ee73e15d431b64c892c95dc0b72b9f4e0260c
6
+ metadata.gz: 499d5fe7d55cfe2317d258def749e9b2cfc04c1181d35989b0de4bcbc4c7ac977bf39efe572ba956408c82a7bea40dba528383f56b6c8e03fcf9d4b3287535e9
7
+ data.tar.gz: b969f42c202b5c8677adfee0eb94eac5d1747de817306dbd4b14736c01bf715ce181b7560b445ccc28a4752f9dc409956e257156cdbe5b27964ea6d91b246eba
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.152.3 (2024-06-13)
5
+ ------------------
6
+
7
+ * Issue - Handle 200 errors for all S3 operations that do not have streaming responses.
8
+
4
9
  1.152.2 (2024-06-12)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.152.2
1
+ 1.152.3
@@ -18828,7 +18828,7 @@ module Aws::S3
18828
18828
  params: params,
18829
18829
  config: config)
18830
18830
  context[:gem_name] = 'aws-sdk-s3'
18831
- context[:gem_version] = '1.152.2'
18831
+ context[:gem_version] = '1.152.3'
18832
18832
  Seahorse::Client::Request.new(handlers, context)
18833
18833
  end
18834
18834
 
@@ -15,22 +15,67 @@ module Aws
15
15
 
16
16
  def call(context)
17
17
  @handler.call(context).on(200) do |response|
18
- if error = check_for_error(context)
19
- context.http_response.status_code = 500
20
- response.data = nil
21
- response.error = error
18
+ return response if streaming_output?(context.operation.output)
19
+
20
+ error = check_for_error(context)
21
+ return response unless error
22
+
23
+ context.http_response.status_code = 500
24
+ response.data = nil
25
+ response.error = error
26
+ end
27
+ end
28
+
29
+ private
30
+
31
+ # Streaming outputs are not subject to 200 errors.
32
+ def streaming_output?(output)
33
+ if (payload = output[:payload_member])
34
+ # checking ref and shape
35
+ payload['streaming'] || payload.shape['streaming'] ||
36
+ payload.eventstream
37
+ else
38
+ false
39
+ end
40
+ end
41
+
42
+ # Checks if the output shape is a structure shape and has members that
43
+ # are in the body for the case of a payload and a normal structure. A
44
+ # non-structure shape will not have members in the body. In the case
45
+ # of a string or blob, the body contents would have been checked first
46
+ # before this method is called in incomplete_xml_body?.
47
+ def members_in_body?(output)
48
+ shape =
49
+ if output[:payload_member]
50
+ output[:payload_member].shape
51
+ else
52
+ output.shape
22
53
  end
54
+
55
+ if structure_shape?(shape)
56
+ shape.members.any? { |_, k| k.location.nil? }
57
+ else
58
+ false
23
59
  end
24
60
  end
25
61
 
62
+ def structure_shape?(shape)
63
+ shape.is_a?(Seahorse::Model::Shapes::StructureShape)
64
+ end
65
+
66
+ # Must have a member in the body and have the start of an XML Tag.
67
+ # Other incomplete xml bodies will result in an XML ParsingError.
68
+ def incomplete_xml_body?(xml, output)
69
+ members_in_body?(output) && !xml.match(/<\w/)
70
+ end
71
+
26
72
  def check_for_error(context)
27
73
  xml = context.http_response.body_contents
28
- if xml.match(/<Error>/)
74
+ if xml.match(/\?>\s*<Error>/)
29
75
  error_code = xml.match(/<Code>(.+?)<\/Code>/)[1]
30
76
  error_message = xml.match(/<Message>(.+?)<\/Message>/)[1]
31
77
  S3::Errors.error_class(error_code).new(context, error_message)
32
- elsif !xml.match(/<\w/) # Must have the start of an XML Tag
33
- # Other incomplete xml bodies will result in XML ParsingError
78
+ elsif incomplete_xml_body?(xml, context.operation.output)
34
79
  Seahorse::Client::NetworkingError.new(
35
80
  S3::Errors
36
81
  .error_class('InternalError')
@@ -40,15 +85,7 @@ module Aws
40
85
  end
41
86
  end
42
87
 
43
- handler(
44
- Handler,
45
- step: :sign,
46
- operations: [
47
- :complete_multipart_upload,
48
- :copy_object,
49
- :upload_part_copy,
50
- ]
51
- )
88
+ handler(Handler, step: :sign)
52
89
  end
53
90
  end
54
91
  end
data/lib/aws-sdk-s3.rb CHANGED
@@ -73,6 +73,6 @@ require_relative 'aws-sdk-s3/event_streams'
73
73
  # @!group service
74
74
  module Aws::S3
75
75
 
76
- GEM_VERSION = '1.152.2'
76
+ GEM_VERSION = '1.152.3'
77
77
 
78
78
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.152.2
4
+ version: 1.152.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-12 00:00:00.000000000 Z
11
+ date: 2024-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-kms