The Desi Architect
Notes / Docker Sandboxes / Direct S3 Uploads: Cryptographic Presigned URLs & Resilient Multipart Transfers
Docker Sandboxes · Tier 2: Data & Scale · Lab 71

Direct S3 Uploads: Cryptographic Presigned URLs & Resilient Multipart Transfers

Why should your application servers burn memory and CPU buffering gigabytes of user file uploads? Learn how AWS S3 presigned URLs (SigV4) offload uploads directly to object storage with zero server proxy bandwidth, reproduce signature and expiry security rejections, and execute resilient chunked multipart uploads that recover from network packet drops without restarting from scratch.

Time25 minutes
StackAWS S3Ports 18380, 18381
MemoryAbout 220 MB
Before thisLab 00Docker Basics
Verified runWindows, Mac, LinuxBash and PowerShell
  1. 1PrepareWhat you will learn
  2. 2PredictGuess before you run
  3. 3RunStep by step
  4. 4ObserveWhat you should see
  5. 5Break itChange one thing
  6. 6Clean upLeave nothing running
On this page
  1. 00 / What You Will Learn
  2. 01 / Why It Matters
  3. 02 / What We Are Building
  4. 03 / Words You Need
  5. 04 / Predict First
  6. 05 / Step by Step
  7. 06 / What You Should See
  8. 07 / Look Inside
  9. 08 / Break It, Fix It
  10. 09 / In Real Projects
  11. 10 / Interview Corner
  12. 11 / Clean Up

00 /What You Will Learn

By the end you will be able to
  • Identify why proxying file uploads through application servers wastes bandwidth, blocks thread pools, and causes out-of-memory crashes.
  • Generate and validate AWS Signature Version 4 (SigV4) presigned URLs for direct client-to-storage uploads.
  • Reproduce security boundaries: observe automatic 403 Forbidden responses when URLs expire or query parameters are tampered with.
  • Execute S3 Multipart Uploads with chunking, per-part SHA-256 ETag verification, and atomic assembly.
  • Simulate network chunk drops and verify resilient part retry without re-uploading the entire file.

Before you start

Complete Lab 01 (Docker Compose Basics) first. You should understand basic HTTP methods (GET, POST, PUT) and REST conventions. Docker Desktop must be running.