Secure streaming zipped download bundles.
A microservice that takes a list of remote files and provides a url that streams a zipped bundle of all those files.
Concept based on an idea from http://engineroom.teamwork.com/how-to-securely-provide-a-zip-download-of-a-s3-file-bundle/ then simplified to work as a simple RESTful API.
docker-compose build
docker-compose up
REDIS_ADDRESS
: Address with port of Redis host e.g. 127.0.0.1:6379
PORT
: Local port the HTTP server will bind to
$ curl -H "Content-Type: application/json" -X POST -d '[{"Filepath":"images/example.jpg","Url":"https://upload.wikimedia.org/wikipedia/mediawiki/a/a9/Example.jpg"}]' http://localhost:8080/zip/
{"ref":"z95h07"}
$ curl http://localhost:8080/zip/?ref=z95h07 -o "download.zip"
$ unzip -l download.zip
Archive: download.zip
Length Date Time Name
-------- ---- ---- ----
61136 02-26-16 03:00 images/example.jpg
-------- -------
61136 1 file
Thunderzippy is released under the MIT License.
Patches, suggestions and comments are welcome.