System Design
Intermediate
Design a File Storage Service
Handle uploads, metadata, permissions, virus scanning, thumbnails, and lifecycle policies.
35 min
3 sections
files
object-storage
uploads
1
2
3
01. Use direct upload for large files
Section 1 of 3
Route metadata through your API, but send bytes directly to object storage with pre-signed URLs. This avoids tying up application servers and makes retries easier.
text
Upload flow:
1. Client requests upload session.
2. API creates file metadata row with status PENDING.
3. API returns pre-signed object storage URL.
4. Client uploads bytes directly to storage.
5. Storage event triggers scanner.
6. Scanner marks file READY or BLOCKED.
7. Thumbnail worker creates previews.Back to Course