File Storage Service

Build a Dropbox-style file storage service with upload, download, sharing, preview, folder management, and storage quotas.

Overview

Create a file management application. Users upload files to S3-compatible storage, organize them in folders, share via public links with expiration, preview images/PDFs inline, and monitor storage usage against their quota.

File storage services are deceptively complex. Beyond basic upload and download, you need to handle: presigned URLs for direct client-to-S3 uploads that bypass your server, chunked uploads for large files with progress tracking and resume capability, a folder hierarchy modeled in a relational database with recursive queries, file sharing with expiration and password protection, and storage quota enforcement with atomic Redis counters.

This project exercises cloud infrastructure skills that are increasingly important for modern engineering roles. Working with S3 (or the compatible MinIO for local development) teaches you about object storage patterns, presigned URL security, content-type handling, and multipart uploads. The folder hierarchy uses PostgreSQL recursive CTEs, which are one of the most powerful and least understood features of SQL.

For interviews, this project is highly relevant to cloud-focused roles at companies like AWS, Dropbox, Google, and Box. It demonstrates S3 integration, streaming file handling, access control design, and quota enforcement, all of which are common system design interview topics.

Interview questions

  • How should I handle file uploads?
  • How do I implement file sharing?
  • How do I build the folder hierarchy?
  • How do I enforce storage quotas?
  • How do I implement file preview?
  • How do I implement a trash system?

Sign up free to read the full topic

More Projects topics

Start free on Cariara · Coding problems · System design studio