ReboFilesDocs
Start3
What is ReboFiles
Getting started
Demos to run
Put it in your app6
React component
Headless: your own UI
Without a framework
Styling and themes
Keyboard and accessibility
Languages
Files9
Uploads
Previews and the viewer
Search
Live changes and large folders
Comments
Starred and fields
Versions, trash and space
Download as .zip
Word documents
The server14
The route
Frameworks and sign-in
Who may do what
Storage: S3, GCS, Azure and disk
Checking uploads
Metadata: SQLite and Postgres
Database schema
Sharing and links
Activity and notifications
Hooks, logs and limits
Retention, holds and export
Desktop and other origins
Sync a folder
Going to production
Together1
AI assistants (MCP)
Reference5
Packages
Components and hooks
Client API
HTTP routes
Status and roadmap
↑↓ to move↵ to openEsc to close38 pages

Files Download as .zip

Download as .zip

Several picked, or a folder, are downloaded as one .zip. It is made in the page: the server says what goes in it, and each file’s bytes go from the bucket into the archive as they are read.
How

How it is made

  • POST /zip gives what goes in it: each file, each folder with what is in it, at their paths, what may not be read left out.
  • Text is deflated by the browser’s own CompressionStream; what is compressed already (pictures, PDFs, Word documents) is kept as it is. ZIP64 for one past 4 GiB.
  • Past 500 MB, where the browser lets a page write a file, it is written to one the person chooses, nothing of it held in the page.
Missed

What was left out

A file that could not be read is left out, the archive made of the rest, and the toast says how many, with a button to download them on their own.

Links

Someone with a link to a folder downloads it whole, or one of its folders, the same way, without signing in.

Code

In code

import { downloadZip } from '@rebofiles/drive';

const { files, size, missed } = await downloadZip(client, ids, { name: 'Contracts', onProgress, signal });