← Lessons

quiz vs the machine

Gold1380

System Design

Multipart Upload

Split a large object into parts, upload them in parallel, then commit them as one object.

5 min read · core · beat Gold to climb

The problem

A single huge upload over one connection is fragile. One dropped packet late in the transfer wastes everything, and one stream cannot saturate available bandwidth. Multipart upload solves both.

How it works

  1. The client initiates an upload and receives an upload id.
  2. It splits the object into parts, each a contiguous byte range, and uploads them in parallel, often from many threads.
  3. Each part returns an ETag that fingerprints its bytes.
  4. The client sends a complete call listing part numbers and ETags. The store stitches the parts into one object in order.

Why it is better

  • Parallelism uses the full network pipe.
  • A failed part is retried alone, not the whole file.
  • Parts that are never completed can be swept by a lifecycle rule so they do not leak storage.

Key idea

Multipart upload breaks a big object into independently retryable parts uploaded in parallel, then commits them as one object by part list.

Check yourself

Answer to earn rating on the learn ladder.

1. What does the store return after each part upload?

2. Why is multipart upload more robust than a single stream?