pub struct AwsChunkedDecoder { /* private fields */ }Expand description
Incremental decoder for the aws-chunked content-encoding that modern AWS
S3 clients (aws-cli, boto3 >= 1.36, aws-crt) apply by default to PutObject /
UploadPart bodies when they send x-amz-content-sha256: STREAMING-AWS4-HMAC-SHA256-PAYLOAD (or STREAMING-UNSIGNED-PAYLOAD-TRAILER).
The wire format wraps the real payload in application-layer frames:
<hex-size>[;chunk-signature=<hex>]\r\n<data>\r\n repeated, terminated by a
0-size chunk, then optional x-amz-trailer lines, then a final \r\n.
hyper only strips HTTP Transfer-Encoding: chunked, NOT this
Content-Encoding: aws-chunked framing — so without decoding, the size /
signature lines and trailers get stored as the object’s bytes (silent
corruption + a wrong ETag). This fed-incrementally because network frames do
not align to chunk boundaries; trailer checksums are consumed but not
re-validated (fakecloud computes its own checksums over the decoded bytes).