Design a File Storage Service

Upload bytes directly to object storage while the API owns durable metadata, authorization, sharing and synchronization.

Advanced⏱ 1 min readLesson 16 of 30#system-design#file-storage#object-storage#uploads#sync

File storage: multipart uploads go to object storage; the API owns metadata, sharing and versioned changesFile storage: multipart uploads go to object storage; the API owns metadata, sharing and versioned changes

Create short-lived multipart upload URLs so app servers never proxy huge files. On completion validate checksums, commit metadata, and emit a versioned change event.

ConcernDesign choice
Unstable large uploadMultipart/resumable parts
IntegrityPer-part and final checksums
SharingMetadata-owned ACL/capability
Device syncVersioned change feed/conflict policy

Object-store durability still needs recovery testing.