Skip to content

blackprince001/octopush

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Octopush - A File Server

Octopush is a Go-based file server designed to handle file uploads, downloads, and other related operations in a manner. The project utilizes the Gin framework for routing and GORM for database interactions.

Video Demo

Usage

Running the Server

  1. Clone the Repository:

    git clone https://github.com/blackprince001/octopush.git
  2. Navigate to the Project Directory:

    cd octopush
  3. Build and Run only the server:

    go build -o octopush cmd/main.go
    ./octopush

    Alternatively, you can use Docker:

    docker build -t octopush .
    docker run -p 5678:5678 octopush

Running Entire Application

  1. Clone the Repository:

We run the compose file and build all containers

docker compose -f compose/local-dev.yml up --remove-orphans

API Endpoints

  • Upload File:

    curl -X POST http://localhost:5678/files/upload -F 'file=@path/to/your/file'
  • Upload File:

    curl -X POST http://localhost:5678/files/upload/:groupName -F 'file=@path/to/your/file' -F 'file=@path/to/your/anotherfile'
  • Download File:

    curl http://localhost:5678/files/download/item/:shortLink
  • Download File:

    curl http://localhost:5678/files/download/group/:groupName
  • Pull Information for All Files:

    curl http://localhost:5678/files
  • Pull Single File Information:

    curl GET http://localhost:5678/files/item/:shortLink

Features and Future Improvements

  • Upload
  • Download
  • Delete Objects from storage
  • Grouped Upload (recursively uploading every file in group)
  • Grouped Download (recursively downloading every file in group)

Contributing

Contributions are welcome. Here are some ways you can contribute:

  • Pull Requests: Submit pull requests for new features, bug fixes, or improvements.
  • Issue Reports: Report any issues or bugs you encounter.
  • Documentation: Help improve the documentation by adding more details or clarifying existing sections.

About

A pluggable concurrent file server over http with faster file retrieval.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors