A simple distributed file storage system. This project demonstrates the basics of storing, retrieving, and managing files across multiple nodes or services.
- Store files in a distributed manner.
- Retrieve files by unique IDs.
- Basic replication and redundancy.
- Simple REST API for interacting with the system.
- Go 1.19+ (for backend/server)
- Docker & Docker Compose (optional, for running services in containers)
-
Clone the repository:
git clone <repository-url> cd distributed-file-storage
-
Start the services:
go run main.go
Or to use Docker Compose:
docker-compose up --build
-
Use the API:
- Upload a file:
POST /upload - Download a file:
GET /files/{id} - List files:
GET /files
- Upload a file:
main.go- Entry point for the application/internal- Core application logic/api- REST API handlers/storage- Storage engine implementation
You may configure ports and storage directories via environment variables or a .env file.
MIT License