Files
FlociClone/docs/services
Priamo Germosen ec4664589b fix(cloudfront): stream origin responses and viewer request bodies (#5278)
A distribution read every origin response whole before answering the
viewer: an S3 origin's object through getObject, a custom origin's body
through the HTTP client into a byte array. A viewer's POST, PUT, PATCH
or DELETE body was likewise read whole before it was forwarded. So an
object or upload of about 2 GiB or more failed, and a smaller one could
run the heap out of memory.

S3 origins now open the object as a stream, the snapshot GetObject
serves, and custom origins return their response before its body is
read; either body is written to the viewer as it arrives, with its
Content-Length, or chunked as the origin sent it. A viewer's body is
streamed to the custom origin with its Content-Length, or chunked when
the viewer sent it chunked or, as HTTP/2 allows, with no length.

An origin response closed before its end, as when the viewer goes away
or a custom error page replaces it, cancels its request instead of
reading the rest of the body to reuse the connection. Since a streamed
response holds its connection for the whole transfer, one origin may
now use the whole connection pool, as CloudFront sets no per-origin
limit.

(cherry picked from commit 1f1d4f94dd8a179972bda124bc3aa47b9704f69b)
2026-10-24 13:53:10 -04:00
..
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-30 17:46:10 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-30 17:46:10 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00
2026-09-22 08:57:00 -04:00