Yet another rest file uploader
rest api microservice that accepts image file uploads
currently only jpeg, png and gif formats are supported
go v1.8 required (because of context needed for graceful shutdown)
- all uploaded images can be reached via /public/filename url
- all valid uploaded images will have 100x100 thumb image via /public/thumb_filename url
- multiple files, multipart/form-data requests supported
- JSON requests with BASE64 encoded images requests supported
- uploading by url supported
- Dockerfile included
service can be tested via curl:
curl -vvv -X POST http://127.0.0.1:8080/api/v1/images -F "files[][email protected]" -F "files[][email protected]" -H "Content-Type: multipart/form-data"
(where 127.0.0.1:8080 is a service address)
assets folder of the repo contains valid file for testing uploads via BASE64/JSON
valid json can be generated by hand and should have format:
{ "name": "filename.ext", "image64": "base64_encoded_string" }
or my testing utility github.com/sibyakin/base64er can be used
generated file can be uploaded with curl:
curl -vvv -X POST -H "Content-Type: application/json" --data @doge.json http://127.0.0.1:8080/api/v1/images/json
uploading by url example:
curl -vvv -X GET "http://127.0.0.1:8080/api/v1/images/url?url=https://pythonprogramming.net/static/images/mainlogowhitethick.jpg"
docker build -t yarfu .
docker run -p 8080:8080 --name yarfu --rm -e GIN_MODE=release yarfu
docker kill -s INT yarfu #(graceful shutdown implemented via SIGINT signal)