飞书批量上传markdown项目
·
功能:
批量上传文件夹下所有markdown文件
效果预览


项目地址
https://gitee.com/vsroom/java-utils
使用说明
要使用该程序,首先你得创建一个企业账号下的应用,已经有企业自建应用的可以跳过这个
- 创建一个企业账号。因为个人版飞书创建的应用不能申请权限,所以必须是企业账号创建的应用才行
- 在企业账号的管理后台下应用管理中创建企业自建应用
- 在权限管理中开启所有权限(省事)
- 在应用发布中创建版本并发布应用,发布后还需要手动点击申请线上发布,最后还要在应用审核中点击通过
- 在凭证与基础能力选项栏中找到应用的app id和app secret,调用接口的时候需要用到
- 调用接口添加你的企业账号为协作者。按步骤调用接口顺序
注意:
- resources/config.properties是配置文件,在里面配置文档相关信息,可以在应用启动后直接打印在上面,省去每次启动都重新输入
appId= appSecret= rootFolderToken= - 程序不会自动创建选中的根目录,所选根目录下的文件会直接在文件夹token下直接生成,有需要的话注意提前创建好文件夹
- 程序不会考虑云空间是否已有文件和文件夹,因此建议在空目录下导入
- 飞书链接可能会请求失败,因此会不可避免的对失败的请求重复请求,并且由于飞书导入速度本身就不快的问题,再加上飞书不支持并发调用,
因此程序运行时长可能会有些长 - 删除接口也可能会报错,因此可能会有少数几个云文件不会被删除,依旧在云空间
特点:
解决飞书不能识别本地链接的问题
- 该应用上传的markdown文件之间相互引用会被记录下来,上传为文档后依旧保持引用关系
- 解决文档的上传无法处理markdown对本地图片引用的问题
代码逻辑:
- 记录所选文件夹下markdown文件中本地链接的依赖关系,将原有文件拷贝一份后将原链接替换为伪造链接
- 本地图片的引用则先上传图片到图床获取链接后在markdown中将其替换
- 在云空间中递归创建文件夹和上传文件
- 导入上传的文件
- 查询所有导入任务结果并记录文档token
- 遍历所有文件的块对存在伪造链接的块进行更新,替换伪造链接为云文档token
- 删除上传的文件和电脑上拷贝的临时文件
难题:
- 飞书导入云文档对链接的处理有特点,本地链接会被认为为纯文本,不会视为链接,需要先生成伪造链接在上传并导入。
本地图片的链接虽然会生成一个空状态图片,但是不会保留原图片的任何信息,无法找到与本地图片的对应关系,只好先将本地图片上传至图床,导入过程会自动将图片下载到飞书上 - 文档的块类型丰富,返回的JSON数据往往类型较多并且多层嵌套,需要判断是哪种类型并且有没有url,要做多层判断并针对性处理
- 接口可能会不可控因素报错,原因可能有连接超时、触发接口频控、飞书内部可重试错误等其他问题,需要对接口多次测试并对每种问题针对处理
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)