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.
-
Clone the Repository:
git clone https://github.com/blackprince001/octopush.git
-
Navigate to the Project Directory:
cd octopush -
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
- Clone the Repository:
We run the compose file and build all containers
docker compose -f compose/local-dev.yml up --remove-orphans-
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
- Upload
- Download
- Delete Objects from storage
- Grouped Upload (recursively uploading every file in group)
- Grouped Download (recursively downloading every file in group)
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.