飞书批量上传markdown项目
功能:
批量上传文件夹下所有markdown文件
效果预览
项目地址
https://gitee.com/vsroom/java-utils
使用说明
要使用该程序,首先你得创建一个企业账号下的应用,已经有企业自建应用的可以跳过这个
- 创建一个企业账号。因为个人版飞书创建的应用不能申请权限,所以必须是企业账号创建的应用才行
- 在企业账号的管理后台下应用管理中创建企业自建应用
- 在权限管理中开启所有权限(省事)
- 在应用发布中创建版本并发布应用,发布后还需要手动点击申请线上发布,最后还要在应用审核中点击通过
- 在凭证与基础能力选项栏中找到应用的app id和app secret,调用接口的时候需要用到
- 调用接口添加你的企业账号为协作者。按步骤调用接口顺序
- 首先创建一个文件夹作为根目录
- 调用接口为你创建的目录增加协作者权限,设置为可管理角色,用户ID可在管理后台的成员与部门中找到
- 接下来你就能在你企业账号的共享空间里找到创建的目录了,你能管理里面的文件并且接口也能操作你创建的文件
注意:
- resources/config.properties是配置文件,在里面配置文档相关信息,可以在应用启动后直接打印在上面,省去每次启动都重新输入
appId= appSecret= rootFolderToken=
- 程序不会自动创建选中的根目录,所选根目录下的文件会直接在文件夹token下直接生成,有需要的话注意提前创建好文件夹
- 程序不会考虑云空间是否已有文件和文件夹,因此建议在空目录下导入
- 飞书链接可能会请求失败,因此会不可避免的对失败的请求重复请求,并且由于飞书导入速度本身就不快的问题,再加上飞书不支持并发调用,
因此程序运行时长可能会有些长 - 删除接口也可能会报错,因此可能会有少数几个云文件不会被删除,依旧在云空间
特点:
解决飞书不能识别本地链接的问题
- 该应用上传的markdown文件之间相互引用会被记录下来,上传为文档后依旧保持引用关系
- 解决文档的上传无法处理markdown对本地图片引用的问题
代码逻辑:
- 记录所选文件夹下markdown文件中本地链接的依赖关系,将原有文件拷贝一份后将原链接替换为伪造链接
- 本地图片的引用则先上传图片到图床获取链接后在markdown中将其替换
- 在云空间中递归创建文件夹和上传文件
- 导入上传的文件
- 查询所有导入任务结果并记录文档token
- 遍历所有文件的块对存在伪造链接的块进行更新,替换伪造链接为云文档token
- 删除上传的文件和电脑上拷贝的临时文件
难题:
- 飞书导入云文档对链接的处理有特点,本地链接会被认为为纯文本,不会视为链接,需要先生成伪造链接在上传并导入。
本地图片的链接虽然会生成一个空状态图片,但是不会保留原图片的任何信息,无法找到与本地图片的对应关系,只好先将本地图片上传至图床,导入过程会自动将图片下载到飞书上 - 文档的块类型丰富,返回的JSON数据往往类型较多并且多层嵌套,需要判断是哪种类型并且有没有url,要做多层判断并针对性处理
- 接口可能会不可控因素报错,原因可能有连接超时、触发接口频控、飞书内部可重试错误等其他问题,需要对接口多次测试并对每种问题针对处理
飞书批量上传markdown项目相关推荐
- 【Fastapi】批量上传文件(文档、图片、视频等)
[Fastapi]批量上传文件 项目演示 功能说明 编程思路 重要知识点分析 源代码 项目演示 [Fastapi]批量上传文件(文档.图片.视频等) https://www.bilibili.com/ ...
- 小红书笔记发布软件 批量上传视频
百收网SEO短视频矩阵发布丨9平台视频发布助手 软件简述:软件仅支持win系统, 软件使用的是网页版模拟协议软件不绑定电脑,任意换机,不限登录账号数量, 软件支持抖音,快手,视频号,西瓜视频,百家号, ...
- **关于阿里云oss图片批量上传问题解析**
关于阿里云oss图片批量上传问题解析 背景 最近在项目开发过程中遇到的问题,消耗了比较久的时间,过程曲折,虽然最终达到目的,但是鉴于各种常用的云数据在对象存储方面大同小异,所以记录一下. 理一下思路: ...
- [Pulgin] 利用swfupload实现java文件批量上传
URL:http://blog.csdn.net/xuweilinjijis/article/details/8876305 之前在网上找过很多相关资料,很多所谓的批量上传都是忽悠人的,真正的批量上传 ...
- 基于jQuery很牛X的批量上传插件
上传功能应该是每个网站必备的工具之一,因此出现了出现了很多各式各样的上传插件! 本文基于个人经验和使用从插件的:交互体验,易用性,文档,美观度出发,为大家推荐三款很NX的批量上传插件! 下面三款插件的 ...
- step-by-step多文件WEB批量上传(swfupload)的完美解决方案
来源:http://www.cnblogs.com/goody9807/archive/2008/11/04/1326098.html 功能完全支持ie和firefox浏览器! 一般的WEB方式文件上 ...
- Django 用 uploadify 实现图片批量上传
分享一下在Django中使用uploadify--一个jQuery批量上传插件--的方法.github上的django-uploadify使用的是2.1.4版本,上传button只能使用图片,不能很方 ...
- c mysql bulk,MySqlBulkLoader批量上传遇到的问题和解决方法
最近用 MySqlBulkLoader 向MySql数据库批量上传数据遇到了些问题,做下记录 问题1:如图 原因:版本不合,使用的MySql版本和引用的mysql.data 版本不和 解决方案:用nu ...
- 批量上传文件及进度显示
不带插件 ,自己写js,实现批量上传文件及进度显示 今天接受项目中要完成文件批量上传文件而且还要显示上传进度,一开始觉得这个应该不是很麻烦,当我在做的时候遇到了很多问题,很头疼啊. 不过看了别人写的代 ...
最新文章
- 源码推荐:仿写映客直播 ,快速切换主题 ,星星评分控件,表格样式,可以横向移动的表格, 仿微信键盘-
- selenium自动化测试多条数据选择第一条
- ad域帐号登录提示无法处理请求_面试官:说一下单点登录的几种实现方式
- 第二十讲 拉普拉斯变换求解线性ODE
- KMP--字符串匹配
- 一步步学习微软InfoPath2010和SP2010--第十四章节--高级选项(3)--重新链接表单
- tp5.0行为的用法,可以存入json数据,方便读取数据。
- 编写一个Java程序将当100,101,102,103,104,105个数以数组的形式写入到Dest.txt文件中,并以相反的顺序读出显示在屏幕上。
- pandas的dataframe
- UDP测试工具(ace版本)
- 安卓和iOS测试的区别
- 中国34个省市用字体logo 石昌鸿 字体设计-借用手法
- 正常图片转灰色图片——灰度图
- idea与电脑常用的快捷键冲突 解决办法
- 应届生web前端面试题_前端开发应届生面试指南(含各大公司具体指南及面试真题)...
- Navicat定期备份MySQL数据库,定期清理备份文件
- 如何将ipad作为电脑的第二显示屏
- ElasticSearch文档过期时间设置
- 期货市场的投资者适当性原则
- 记录更换固态硬盘免重装系统和环境的操作
热门文章
- 【尖端干货】H.264编码下直播视频添加水印的优化
- 【Android】新闻资讯APP的简易实现
- IOS目前比较不错的推广网站
- linux键盘鼠标不能使用的办法
- RoIPooling和RoIAlign
- 寻找马鞍点的c语言算法(数据结构之数组)
- 创维Android4.4.4,创维电视手机遥控
- 印度最强输出是什么?CEO!印度裔统治下的美国巨头
- vue.runtime.esm.js?2b0e:4603 [Vue warn]: Error in beforeCreate hook: “TypeError: this._router.init i
- 关于element upload组件图片上传时闪烁/空了一格问题