Larissa is an elegent image server accessible via a S3 like HTTP API.
As of now larissa is still a prototype with the design principles not yet set.
- support more backends(mongodb, minio, CloudStore, S3, etc...)
- filter/limit file mimetype (png, jpeg, gif initialy)
- multifile upload
- parameter configured processing
- access sdk for major languages(Go, Js, Python, Php,...)
Natively
If you're inside GOPATH, make sure GO111MODULE=on, if you're outside GOPATH, then Go Modules are on by default. The main package is inside cmd and is run like any go project as follows:
-
clone the repository:
$ git clone https://github.com/rugwirobaker/larissa.git
-
cd into the larissa directory:
$ cd larissa
-
build the binary:
$ make build
-
the outputed binary is saved at the bin directory, and tou can run it with
$ ./bin/larissa
-
You can also pass it an optional configuraion file:
$ ./bin/larissa --config_file "path/config_file"
using docker
using docker compose this options does the following for you:
- build the larissa binary from scratch
- add larissa configuration
- run larissa server
For this to work you need docker
and docker-compose
setup on your computer
$ make dev
To rebuild the docker image
$ make dev-build
By default in all cases larissa is listening at:
localhost:3000
function | Endpoint | Options | Method |
---|---|---|---|
larissa buiild info | "/build" |
GET | |
server health status | "/health" |
GET | |
upload image | "/put/:bucket" |
Form Field:image:"image_name" |
PUT |
list alll images a in bucket | "/list/:bucket" |
GET | |
dowload image | "/get/:bucket/:image" |
GET | |
delete image | "/del/:bucket/:image" |
DELETE | |
verify image existance | "/exists:bucket/:image" |
GET |
Tips:
- the errors package follows the example of upspin project's errors
As of now PRs are not yet accepted. The project's direaction is still shaping up