ReboFiles文档
开始3
什么是 ReboFiles
快速开始
可运行的演示
集成到你的应用6
React 组件
Headless:你自己的界面
不使用框架
样式与主题
键盘与无障碍
语言
文件9
上传
预览与查看器
搜索
实时更改与大文件夹
评论
星标与字段
版本、回收站与空间
打包下载 .zip
Word 文档
服务器14
路由
框架与登录
谁可以做什么
存储:S3、GCS、Azure 与磁盘
检查上传
元数据:SQLite 与 Postgres
数据库结构
共享与链接
动态与通知
钩子、日志与限制
保留、法律保留与导出
桌面端与其他来源
同步文件夹
上线生产环境
协作1
AI 助手(MCP)
参考5
包
组件与 hooks
客户端 API
HTTP 路由
状态与路线图
↑↓ 移动↵ 打开Esc 关闭38 个页面

文件 打包下载 .zip

打包下载 .zip

选中多个文件或一个文件夹,即可打包为一个 .zip 下载。压缩包在页面中生成:服务器告诉页面包含哪些内容,每个文件的内容从存储桶读取后直接写入压缩包。
原理

生成方式

  • POST /zip 返回要包含的内容:每个文件、每个文件夹及其中的内容,以及它们的路径,无权读取的内容会被排除。
  • 文本由浏览器自带的 CompressionStream 压缩;已经压缩过的内容(图片、PDF、Word 文档)保持原样。超过 4 GiB 时使用 ZIP64。
  • 超过 500 MB 时,如果浏览器允许页面写入文件,会直接写入用户选择的文件,页面中不保留任何内容。
遗漏

未包含的文件

无法读取的文件会被排除,压缩包由其余文件生成,提示中会显示数量,并提供单独下载它们的按钮。

链接

拥有文件夹链接的人可以用同样的方式下载整个文件夹或其中的子文件夹,无需登录。

代码

在代码中

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

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