lark-drive(版本 drive v1)是面向飞书云空间的操作技能,基于 lark-cli 命令行工具实现文件与文档的管理。
一、用途与定位 该技能管理云空间中的文件和文件夹,涵盖上传和下载文件、创建文件夹、复制/移动/删除文件、查看文件元数据、管理文档评论、管理文档权限、订阅用户评论变更事件;同时负责把本地 Word/Markdown/Excel/CSV 等文件导入为飞书在线文档。
二、使用前提 资料明确要求:开始前 MUST 先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证、权限处理。
三、导入分流规则
- 本地 .xlsx / .csv 导入成 Base / 多维表格 / bitable:必须优先使用 lark-cli drive +import --type bitable,不要先切到 lark-base;lark-base 只负责导入完成后的表内操作。
- 本地 .md / .docx / .doc / .txt / .html 导入成在线文档:使用 lark-cli drive +import --type docx。
- 本地 .xlsx / .xls / .csv 导入成电子表格:使用 lark-cli drive +import --type sheet。
四、核心概念:文档类型与 Token 不同文档类型有不同的 URL 格式和 Token 处理方式,操作前必须获取正确的 file_token。
- /docx/ 与 /doc/:URL 路径中的 token 可直接作为 file_token 使用。
- /wiki/:token 为 wiki_token,不能直接使用,需先查询获取真实的 obj_token。
- /sheets/:token 可直接作为 file_token 使用。
- /drive/folder/:token 作为文件夹 token 使用。
Wiki 链接特殊处理:先使用 wiki.spaces.get_node 查询节点信息(lark-cli wiki spaces get_node --params '{"token":"wiki_token"}'),从返回结果提取 node.obj_type(文档类型)、node.obj_token(真实 token)、node.title(标题),再根据 obj_type 使用对应 API(docx、doc、sheet、bitable、slides、file、mindnote 等)。
五、评论能力边界
- 全文评论:未传 --selection-with-ellipsis / --block-id 时默认启用,也支持显式 --full-comment;支持 docx、旧版 doc URL,以及最终解析为 doc/docx 的 wiki URL。
- 局部评论:传 --selection-with-ellipsis 或 --block-id 时启用;仅支持 docx,以及最终解析为 docx 的 wiki URL。
- --content 需要传 reply_elements JSON 数组字符串。
- 若 wiki 解析后不是 doc/docx,不要用 +add-comment。
评论查询与统计口径:drive file.comments list 返回的 items 应理解为“评论卡片”列表;评论正文承载于 item.reply_list.replies。“评论数/评论卡片数”统计 items 长度;“回复数”为所有 replies 长度之和减去 items 长度;“总互动数”为所有 replies 长度之和。若 item.has_more=true,需继续调用 drive file.comment.replys list 拉全后再统计。
评论排序与回复限制:评论按 create_time 排序,仅在用户明确提到“最新/最后/最早评论”时排序,且必须先分页拉完所有数据。全文评论(is_whole=true)不支持回复;已解决评论(is_solved=true)不支持回复。遇到此类评论只提示不能回复,不要自动寻找其他评论。
六、快捷操作(Shortcuts,优先使用) +upload(上传本地文件到 Drive)、+download(下载文件到本地)、+add-comment(添加全文或 docx 局部评论)、+export(导出 doc/docx/sheet/bitable 到本地)、+export-download(按 file_token 下载导出文件)、+import(导入本地文件为云文档)、+move(移动文件或文件夹)、+delete(删除文件或文件夹)、+task_result(轮询异步任务结果)。
七、API 资源 使用原生 API 前必须先运行 lark-cli schema drive.<resource>.<method> 查看参数结构,不要猜测字段格式。资源包括 files(copy/create_folder/list)、file.comments(batch_query/create_v2/list/patch)、file.comment.replys(create/delete/list/update)、permission.members(auth/create/transfer_owner)、metas(batch_query)、user(remove_subscription/subscription/subscription_status)、file.statistics(get)、file.view_records(list)、file.comment.reply.reactions(update_reaction)。
八、授权与权限 将文档授权给当前应用(bot)时,先用 lark-cli api GET /open-apis/bot/v3/info --as bot 获取 open_id,再调用 permission.members create。resource_type 可选值:doc、docx、sheet、bitable、file、folder、wiki。授权给其他用户时直接使用对方 open_id 即可。资料还提供了各方法对应的 scope 权限表。
九、典型错误与解决 not exist(token 错误,wiki 链接需先查询 obj_token)、permission denied(无操作权限,需引导检查或授予权限)、invalid file_type(file_type 参数错误,需按 obj_type 传入正确值)。