This project is an implementation of a simplified cloud-based file storage system. It supports secure file uploads and downloads, authentication, and metadata management.
- π Authentication β Basic user login and token-based authorization.
- π File Upload/Download β REST endpoints for storing and retrieving files.
- π§Ύ Metadata Tracking β File metadata stored and queryable (e.g., size, type, owner, timestamp).
- π Fault Tolerance β Redundancy and recovery strategies using replication.
- π€ Secure File Sharing β Shareable links or access tokens for shared files.
- Java 24
- Spring Boot (REST APIs, validation, security)
- JUnit & Mockito for testing
- MySQL (for metadata storage)
- Local File System (for simulating storage)
- JWT for authentication
This project was built to deepen understanding of:
- Backend systems architecture
- Designing scalable and testable APIs
- Security and file access control
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/register |
Register new user |
| POST | /auth/login |
Authenticate user |
| POST | /files/upload |
Upload file |
| GET | /files/download/{id} |
Download file by ID |
| GET | /files/metadata |
Query metadata |
Unit and integration tests included for:
- Authentication flow
- File upload/download
- Metadata persistence
- Fault recovery