A small coding challenge project.
zipapi is an HTTP(S) API that takes files uploaded to
POST /archive as
into a zip archive and returns it as a response.
- Upload of multiple files and creating a zip file out of them
- Provide the zip file back to the API user
- Serve multiple requesting clients at the same time
- Limit the size of each uploaded file
- Nice to have:
- Provide automated API tests
- Retain a history of all created Zip files and their contents *
- Expire created Zip files after a specific period of time **
* There's currently no database-backed persistency implementation but just a simple in-memory mock. Implementing one shouldn't be a problem though.
** This service shouldn't be responsible for this problem. There must be a separate service that periodically goes over the database and cleans up expired files.
- Download the latest release from releases
- Define a configuration using
/cmd/zipapi/config.tomlas a template
- Run the server using
./zipapi -config /path/to/config.tomlproviding the path to your configuration file.