Skip to content

This project implements a distributed file storage system in Go. It allows users to store, retrieve, and manage files across multiple nodes in a network.

License

Notifications You must be signed in to change notification settings

Patrick-Ehimen/distributed-file-storage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distributed File Storage

This project implements a distributed file storage system in Go. It allows users to store, retrieve, and manage files across multiple nodes in a network.

Features

  • Store files in a distributed manner
  • Retrieve files using unique identifiers
  • Delete files from the storage
  • HTTP API for file operations

Project Structure

distributed-file-storage
├── cmd
│   └── main.go          # Entry point of the application
├── internal
│   ├── storage
│   │   ├── storage.go   # Storage mechanism for files
│   │   └── storage_test.go # Unit tests for storage functions
│   ├── server
│   │   ├── server.go    # HTTP server and API endpoints
│   │   └── server_test.go # Unit tests for server API
├── pkg
│   └── utils
│       ├── utils.go     # Utility functions
│       └── utils_test.go # Unit tests for utility functions
├── go.mod               # Module dependencies
├── go.sum               # Module dependency checksums
└── README.md            # Project documentation

Setup Instructions

  1. Clone the repository:

    git clone https://github.com/yourusername/distributed-file-storage.git
    cd distributed-file-storage
    
  2. Install dependencies:

    go mod tidy
    
  3. Run the application:

    go run cmd/main.go
    

Usage

  • Upload a file: Send a POST request to /upload with the file data.
  • Download a file: Send a GET request to /download/{fileID}.
  • Delete a file: Send a DELETE request to /delete/{fileID}.

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

This project implements a distributed file storage system in Go. It allows users to store, retrieve, and manage files across multiple nodes in a network.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages