View on GitHub

Web-zipper

Online Zip File generator powered by NodeJS

Download this project as a .zip file Download this project as a tar.gz file

Welcome to the Web-Zipper Demo page

This is a demo page powered by a NodeJS Heroku server. Please refrain from zipping sensitive files, it should only be used for test purposes.

Synopsis

The Web-Zipper application will take a list of urls, file paths and a callback url, and generate a zip file containing all specified files. The generated zip file will then be uploaded to the Mega service. Once the upload is complete, the app will post to the callback url with the final upload link on Mega.

Example

The following editable content box contains the json data that will be posted to the Web-Zipper application. The format is fairly simple.


{
    "files": [
    {
        "url": "http://www.ets.org/Media/Tests/GRE/pdf/gre%20practice%20general%20test.pdf",
        "path": "required_filename_stored_in_root.pdf"
    },
    {
        "url": "http://www.google.com",
        "path": "this.is.some.foldername/homepage.html"
    },
    {
        "url": "http://cdn.sstatic.net/apple/img/logo.png?v=123",
        "path": "this.is.some.newfolder/logo.png"
    }
    ],
    "webhook_url": "http://postcatcher.in/catchers/51aaaba38f59b20200000261"
}
    

Motivation

While building QuietThyme, my cloud ebook manager, I wanted to ensure that my users would be able to export their library at any time. As our free plan supports up to 100 ebooks, and our popular Catalog plan goes up to 500 ebooks, we needed to create a fire-and-forget process that would work asynchronously to process the ebooks and inform us once the backup was complete.

We use a more complex version of the Web-Zipper that stores the backup zip file on Amazon S3, and preforms some custom validation, however the working example above will give you a good starting point.

Installation

Just pull down the code and start a new node instance with nodejs, or push to heroku.

License

The Web-Zipper code is available under the MIT license.