FileSlide Zip-as-a-Service is a cloud gateway that zips files from your servers and streams them directly to your clients. Because downloading multiple files at once is not supported by HTTP, zipping files together into one single download is the next best thing.
Implementing reliable file zipping at scale is not as simple as it sounds. Often the first question is whether to either create a temporary zip file on disk or stream on-the-fly. Creating a temporary file leads to more questions such as how long the user should wait while the file is zipped, if and how they should be notified when it's ready and how long to keep the temporary file. Temporary files also raise concerns over retention and compliance policies. Streaming is the better option but it is tricky - CRC checksums are needed to assemble the stream and servers are required to support long-running responses.
We're getting pretty good at this and we think we can zip your downloads faster, cheaper and more reliably than any in-house solution. If our service does not meet your requirements please email us at firstname.lastname@example.org and we'll be happy to work with you.
In this example, imagine you are a Data Provider (Company) and you have file browser app similar to Dropbox™ or Google Drive™ where your end user
(Client) selects checkboxes next to
file2.mov and then clicks the button Download Zip of 2 Files.
1. Add URI patterns to our allow-list
Firstly, the Provider signs-in to FileSlide and registers the URI prefixes (Company Servers) for their data. This step is for accounting purposes so that requests matching this prefix are allowed and allocated to the owner's account.
URI Prefixes: https://mycompany.com/private/data/* https://backup.mycompany.com/private/2020/*
2. Your Client requests multiple files
The Provider's file browser app constructs a request from the Client to the FileSlide streaming server similar to the form below (JSON format also supported). The Provider is responsible for implementing authentication and authorization.
<form action="https://stream.fileslide.io/download" method="post"> <input type="hidden" name="fs_file_name" value="demo_download.zip" /> <!-- For authentication, either forward all headers sent to FileSlide on to mycompany.com --> <input type="hidden" name="fs_forward_all_headers" value="true" /> <!-- Or tell FileSlide to add a specific header --> <input type="hidden" name="fs_add_header-Authorization" value="ABC123 /> <!-- Or use presigned URLs --> <input type="hidden" name="fs_uri_list" value="https://mycompany.com/private/data/file1.pdf?presigned_key=ABC123 /> <input type="hidden" name="fs_uri_list" value="https://backup.mycompany.com/private/2020/file2.mov?presigned_key=ABC123 /> <input type="submit" value="Download Zip of 2 Files"/> </form>
3. We fetch the files and stream a zip download to your Client
FileSlide checks all the URIs in the
fs_uri_list parameter against the allow-list and within a few seconds the Client is prompted to save
demo_download.zip. FileSlide then fetches all the files in
fs_uri_list, assembles the zip file and streams it directly to the Client.
4. View analytics
The Provider signs-in to FileSlide to customize queries and charts to report analytics.
Please see the API for features and details