Use presigned URLs when a web app only needs user files to land in object storage, and reach for a proxy upload through your backend when you must inspect, rewrite, or serialize the bytes before they're stored. For ordinary SaaS document and media uploads that's the presigned path almost every time, and for a dull reason: your API server never touches the payload, so it can't be the thing that runs out of memory at 3 a.m. I've built both. The choice itself is easy — what people underestimate ...