飞书文档批量导出实战:一条命令把700+知识库文档备份到本地
【免费下载链接】feishu-doc-export飞书文档导出服务项目地址: https://gitcode.com/gh_mirrors/fe/feishu-doc-export
假如你所在的公司要从飞书迁移到其他协作平台,而知识库里躺着700多个文档——手动一个个下载至少需要一整天,还保不住原有的目录结构。这正是 feishu-doc-export 要解决的飞书文档批量导出难题:它是一款基于 .NET Core 的跨平台命令行工具,一条命令即可将整个飞书知识库或个人空间云文档同步到本地,支持 docx、markdown、pdf 三种格式,实测 700+ 文档仅需 25 分钟,且全程可后台挂机运行。
结论先行:它能帮你省下多少时间
先看一组直观对比。假设你的知识库里有 100 个需要备份的文档:
| 对比维度 | 手动逐个下载 | feishu-doc-export |
|---|---|---|
| 预计耗时 | 3 小时以上 | 5 分钟左右 |
| 目录结构 | 完全打乱,需人工整理 | 与飞书原结构一致 |
| 表格/多维表格 | 需另存为,格式易错 | 自动转 xlsx 导出 |
| 中断风险 | 断网即前功尽弃 | 单文档失败自动跳过 |
工具的核心能力可以概括为三点:
- 全量递归:一次导出知识库下的所有文档,无需逐个指定;
- 结构保真:导出后的本地目录层级与飞书知识库完全一致,找文档和找备份同样方便;
- 三格式可选:docx 适合存档、md 适合进 Git 仓库、pdf 适合对外分发。
它凭什么快:一次导出背后的工作流程
知其然也要知其所以然。feishu-doc-export 的快,来自对飞书开放平台 API 的合理编排,整个导出过程大致分五步:
- 调用知识库接口,递归拉取空间下全部节点(文档、表格、文件);
- 根据节点的父子关系生成本地路径映射,确保目录结构一致;
- 为每个文档创建飞书导出任务,轮询任务状态直到就绪;
- 下载导出文件并按映射路径写入本地磁盘;
- 若选择 markdown 格式,则先下载 docx,再用 Aspose.Words 转换并修复图片与文档引用路径。
如果你对实现细节感兴趣,源码里的模块划分很清晰:API 调用集中在src/feishu-doc-export/HttpApi/目录,格式转换与文件处理在src/feishu-doc-export/Helper/目录,路径映射则分别由DocumentPathGenerator.cs(知识库)和CloudDocPathGenerator.cs(个人空间)负责,读起来不费力。
第一步:在飞书开放平台配置API凭证
动手导出之前,需要先让飞书"认识"你的程序。整个过程约 10 分钟,一次性配置,之后即可反复使用。
1. 创建企业自建应用
进入飞书开发者后台,点击"创建企业自建应用",名称和描述随意填写即可。创建完成后进入应用的后台管理页。
2. 开通云文档相关权限
在"权限管理"中开通以下权限(注意列表有分页,务必翻页查看):
- 查看新版文档
- 查看、评论和下载云空间中所有文件
- 查看、评论和导出文档
- 查看、评论、编辑和管理云空间中所有文件
- 查看、评论、编辑和管理多维表格
- 查看、评论、编辑和管理电子表格
- 导出云文档
- 查看、编辑和管理知识库
3. 添加机器人能力并发布上线
在"添加应用能力"中为应用添加机器人;然后在"版本管理与发布"中创建版本并申请发布,等待企业管理员审核通过。如果只想测试,可以在测试企业下绑定应用并切换到测试版本,自行创建知识库和文档。
4. 给机器人放行知识库
在飞书桌面客户端新建一个群组,把刚创建的应用作为群机器人添加进去;接着打开知识库的"知识空间设置 → 成员管理 → 添加管理员",选择这个群组。这样机器人就获得了该知识库的读取与导出权限。
5. 取回凭证与知识库 ID
回到开发者平台的"凭证与基础信息",即可看到App ID和App Secret,这两个值就是后续命令的钥匙。知识库 ID 则藏在知识库页面的 URL 里——space/后面的那一串字符串即是。
第二步:下载程序,跑通第一条导出命令
根据操作系统选择对应压缩包:Windows 用户下载feishu-doc-export-win-x64.zip,Mac 用户下载feishu-doc-export-mac-osx-x64.zip,Linux 用户下载feishu-doc-export-linux-x64.zip。解压后,Windows 的可执行文件是feishu-doc-export.exe,Linux 和 Mac 则是无后缀的feishu-doc-export。
最简单的导出命令只需要三个必填参数:
# 克隆项目源码(也可直接下载预编译版本) git clone https://gitcode.com/gh_mirrors/fe/feishu-doc-export # Windows ./feishu-doc-export.exe --appId=你的AppId --appSecret=你的AppSecret --exportPath=E:\文档备份 # Mac / Linux sudo ./feishu-doc-export --appId=你的AppId --appSecret=你的AppSecret --exportPath=/home/文档备份不传--spaceId时,程序会列出当前账号下所有可导出的知识库,你只需输入序号即可选择,适合首次使用。完整的参数速查表如下:
| 参数 | 说明 | 是否必填 |
|---|---|---|
--appId | 飞书自建应用的 App ID | 必填 |
--appSecret | 飞书自建应用的 App Secret | 必填 |
--exportPath | 文档导出的本地目录 | 必填 |
--spaceId | 知识库 ID | 选填(不填则交互选择) |
--type | wiki(知识库)或cloudDoc(个人空间),默认 wiki | 选填 |
--saveType | docx、md、pdf,默认 docx | 选填 |
--folderToken | type 为 cloudDoc 时必填 | 按需 |
--apiEndpoint | 指定 API 地址,如https://open.larksuite.com,用于 Lark 环境 | 选填 |
--quit | 导出结束后自动退出,适合自动化场景 | 选填 |
Mac / Linux 用户请留意两点:首次使用需先执行sudo chmod +x ./feishu-doc-export赋予执行权限;运行时建议加sudo,否则可能因权限不足而无法创建目录。
第三步:按需选择导出范围与格式
导出个人空间云文档是知识库之外的高频场景,操作同样不复杂:先把要导出的文件夹分享给自建应用,然后在分享链接中提取folderToken=后面的值,最后执行:
./feishu-doc-export.exe --appId=xxx --appSecret=xxx --type=cloudDoc --folderToken=文件夹Token --saveType=md --exportPath=E:\temp\test需要说明的是,个人空间因飞书做了登录限制,未登录状态下列举文件夹列表的 API 无法调用,所以工具只支持按指定文件夹导出,不支持"浏览选择",这是平台限制而非工具缺陷。
三种格式怎么选?下表基于项目作者的实测结论:
| 格式 | 速度 | 适用场景 | 注意点 |
|---|---|---|---|
| docx | 最快 | 本地存档、二次编辑 | 推荐首选 |
| md | 与 docx 相当 | 纳入 Git 版本管理 | 存在格式丢失 |
| 最慢(图片内嵌) | 对外分发、归档 | 适合量小的场景 |
坦白讲,markdown 导出目前存在已知的格式局限:引用语法、表格、行内代码块会在 docx 转 md 的过程中丢失。原因是该工具先调用飞书接口下载 docx,再做二次转换,而 docx 阶段已产生了格式损耗。如果你的文档包含大量复杂表格,建议直接用 docx 导出;需要完美视觉呈现再考虑 pdf。
稳定性与自动化:挂机导出也不怕
批量导出最怕"一颗老鼠屎坏了一锅粥",这个工具在容错上做了不少功课:
- 单点失败不中断:某个文档导出异常会被记录并跳过,其余文档继续导出,最后统一输出"无法导出"清单;
- 任务查询重试:导出任务状态查询失败会自动重试最多 10 次,降低网络抖动的影响;
- 超长文件名兜底:超过系统命名长度限制的文档会被自动忽略并提示,避免整批任务报错;
- 支持后台自动化:加上
--quit参数后程序执行完毕自动退出,配合 cron 定时任务即可实现飞书文档定期备份。
下一步:从今天开始备份你的知识库
与其在需要迁移的那天才手忙脚乱,不如现在就花 10 分钟配置好飞书自建应用,跑通第一条导出命令。获取工具:git clone https://gitcode.com/gh_mirrors/fe/feishu-doc-export,或直接下载对应平台的预编译版本。一次配置、一条命令、25 分钟完成 700+ 飞书文档批量导出——把文档备份这件事,彻底交给自动化。
【免费下载链接】feishu-doc-export飞书文档导出服务项目地址: https://gitcode.com/gh_mirrors/fe/feishu-doc-export
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考