Design Google Drive
HardSystem design · File Storage · Google
Design a cloud drive like Google Drive. Users upload files, organise them in folders, share them with people, groups or links, search, and open them from any device.
In scope: file metadata and the folder graph, permissions and inheritance, resumable large-file upload and download, versioning and trash, quota, and permission-aware search. Out of scope: the real-time co-editing engine (see Google Docs) and the low-level device sync protocol (see the Dropbox-style file sync problem).
Requirements
- Keep file bytes in object storage and folder, version and permission metadata in separate, sharded stores
- Support person, group and link sharing with inheritance, deny precedence and revocation
- Resumable chunked uploads, signed-URL downloads, version history and delete/restore
- Quota per owner and permission-filtered search that cannot leak the existence of private files