bugfree Icon
interview-course
interview-course
interview-course
interview-course
interview-course
interview-course
interview-course
interview-course

System Design Question

Design a File Storage Service like Dropbox or Google Drive

bugfree Icon

Hello, I am bugfree Assistant. Feel free to ask me for any question related to this problem

Functional Requirements:

  • Users can upload files to their personal storage.
  • Users can download their files at any time.
  • Users can organize files into folders/directories.
  • Users can share files or folders with other users (read-only or read-write permissions).
  • Users can update or overwrite existing files.
  • Users can delete files or folders.
  • Users can view a list of their files and folders (home directory view).

Non-Functional Requirements:

  • High durability: Files should not be lost once uploaded.
  • High availability: Users should be able to access their files reliably.
  • Scalability: The system should support millions of users and petabytes of data.
  • Strong consistency: File operations (upload, update, delete) should be reflected immediately across all clients.
  • Security: Only authorized users should be able to access files; sharing should be controlled by permissions.
  • Reasonable response time: Directory listings should be fast (sub-second), uploads/downloads should be acceptable for large files (seconds).

System Design Diagrams

Zoom In and Out via trackpad or posture