chore(middleware-content-length): set transfer-encoding if content-length is not set #3403
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
Refs: #3400
Description
Sets transfer-encoding if content-length is not set.
Refs: #3400 (comment)
Testing
Verified that
transfer-encoding
header is set tochunked
in the following test case when we attempt to send ReadableStream to PutObject:Irrespective of whether
Transfer-Encoding
is set (in PR) or not (in v3.53.1 with flexible checksums, or v3.52.0 prior to flexible checksums), the code fails with error:The error should be discussed separately if needed. We're following RFC7230 spec, and the behavior in AWS SDK for Python.
Additional context
This PR will be rebased and made ready once #3401 is merged.ReadyBy submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.