A creator uploads a big video
The upload API creates the video and hands out signed URLs; the bytes go from the phone to object storage.
- The app calls start; the upload API creates the video as uploading and returns URLs for the first parts.
- The app sends each part straight to object storage, a few at a time; after a drop, only the missing ones.
- The app calls complete with the part list, and the upload API checks it.
- The video becomes processing, a job goes on the queue, and the call returns 202.
Diagram as text
Components: Upload API (Service); Video records (SQL DB); Creator app (Client); Processing queue (Queue); Object storage (Object store). Connections: Creator app → Upload API (1. start, 3. complete); Creator app → Object storage (2. each part, signed); Upload API → Video records (4. status: processing); Upload API → Processing queue (5. processing job), asynchronous.
Read:Learn: Large file upload & blob handlingLearn: S3 / Blob Storage
Check yourself
Why don't the parts go through the upload API?
Show answerHide answer
Hundreds of gigabits a second of uploads would tie the API servers up; signed URLs let storage take the bytes while the API only grants permission.