Add newline after XML preamble in S3 responses for Serverless compatibility #5795
+33
−14
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.
Add newline after XML preamble in S3 responses for Serverless compatibility.
Instead of this:
We need to return:
Tested against real AWS.
This is required because moto is generally collapsing all S3 XML responses: https://github.com/spulec/moto/blob/3718cde444b3e0117072c29b087237e1787c3a66/moto/core/responses.py#L102-L104 . Without this change, newer versions of Serverless are failing with:
Debugging the Serverless logic a bit more, it turns out that the location constraint gets extracted as the (literal) string
<LocationConstraint xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
instead of the location value likeus-east-1
(seems like a bug in their XML parser).