功能:

批量上传文件夹下所有markdown文件

效果预览


项目地址

https://gitee.com/vsroom/java-utils

使用说明

要使用该程序,首先你得创建一个企业账号下的应用,已经有企业自建应用的可以跳过这个

  1. 创建一个企业账号。因为个人版飞书创建的应用不能申请权限,所以必须是企业账号创建的应用才行
  2. 在企业账号的管理后台下应用管理中创建企业自建应用
  3. 在权限管理中开启所有权限(省事)
  4. 在应用发布中创建版本并发布应用,发布后还需要手动点击申请线上发布,最后还要在应用审核中点击通过
  5. 在凭证与基础能力选项栏中找到应用的app id和app secret,调用接口的时候需要用到
  6. 调用接口添加你的企业账号为协作者。按步骤调用接口顺序
    • 首先创建一个文件夹作为根目录
    • 调用接口为你创建的目录增加协作者权限,设置为可管理角色,用户ID可在管理后台的成员与部门中找到
    • 接下来你就能在你企业账号的共享空间里找到创建的目录了,你能管理里面的文件并且接口也能操作你创建的文件

注意:

  1. resources/config.properties是配置文件,在里面配置文档相关信息,可以在应用启动后直接打印在上面,省去每次启动都重新输入

    appId=
    appSecret=
    rootFolderToken=
    
  2. 程序不会自动创建选中的根目录,所选根目录下的文件会直接在文件夹token下直接生成,有需要的话注意提前创建好文件夹
  3. 程序不会考虑云空间是否已有文件和文件夹,因此建议在空目录下导入
  4. 飞书链接可能会请求失败,因此会不可避免的对失败的请求重复请求,并且由于飞书导入速度本身就不快的问题,再加上飞书不支持并发调用,
    因此程序运行时长可能会有些长
  5. 删除接口也可能会报错,因此可能会有少数几个云文件不会被删除,依旧在云空间

特点:

解决飞书不能识别本地链接的问题

  1. 该应用上传的markdown文件之间相互引用会被记录下来,上传为文档后依旧保持引用关系
  2. 解决文档的上传无法处理markdown对本地图片引用的问题

代码逻辑:

  1. 记录所选文件夹下markdown文件中本地链接的依赖关系,将原有文件拷贝一份后将原链接替换为伪造链接
  2. 本地图片的引用则先上传图片到图床获取链接后在markdown中将其替换
  3. 在云空间中递归创建文件夹和上传文件
  4. 导入上传的文件
  5. 查询所有导入任务结果并记录文档token
  6. 遍历所有文件的块对存在伪造链接的块进行更新,替换伪造链接为云文档token
  7. 删除上传的文件和电脑上拷贝的临时文件

难题:

  1. 飞书导入云文档对链接的处理有特点,本地链接会被认为为纯文本,不会视为链接,需要先生成伪造链接在上传并导入。
    本地图片的链接虽然会生成一个空状态图片,但是不会保留原图片的任何信息,无法找到与本地图片的对应关系,只好先将本地图片上传至图床,导入过程会自动将图片下载到飞书上
  2. 文档的块类型丰富,返回的JSON数据往往类型较多并且多层嵌套,需要判断是哪种类型并且有没有url,要做多层判断并针对性处理
  3. 接口可能会不可控因素报错,原因可能有连接超时、触发接口频控、飞书内部可重试错误等其他问题,需要对接口多次测试并对每种问题针对处理

飞书批量上传markdown项目相关推荐

  1. 【Fastapi】批量上传文件(文档、图片、视频等)

    [Fastapi]批量上传文件 项目演示 功能说明 编程思路 重要知识点分析 源代码 项目演示 [Fastapi]批量上传文件(文档.图片.视频等) https://www.bilibili.com/ ...

  2. 小红书笔记发布软件 批量上传视频

    百收网SEO短视频矩阵发布丨9平台视频发布助手 软件简述:软件仅支持win系统, 软件使用的是网页版模拟协议软件不绑定电脑,任意换机,不限登录账号数量, 软件支持抖音,快手,视频号,西瓜视频,百家号, ...

  3. **关于阿里云oss图片批量上传问题解析**

    关于阿里云oss图片批量上传问题解析 背景 最近在项目开发过程中遇到的问题,消耗了比较久的时间,过程曲折,虽然最终达到目的,但是鉴于各种常用的云数据在对象存储方面大同小异,所以记录一下. 理一下思路: ...

  4. [Pulgin] 利用swfupload实现java文件批量上传

    URL:http://blog.csdn.net/xuweilinjijis/article/details/8876305 之前在网上找过很多相关资料,很多所谓的批量上传都是忽悠人的,真正的批量上传 ...

  5. 基于jQuery很牛X的批量上传插件

    上传功能应该是每个网站必备的工具之一,因此出现了出现了很多各式各样的上传插件! 本文基于个人经验和使用从插件的:交互体验,易用性,文档,美观度出发,为大家推荐三款很NX的批量上传插件! 下面三款插件的 ...

  6. step-by-step多文件WEB批量上传(swfupload)的完美解决方案

    来源:http://www.cnblogs.com/goody9807/archive/2008/11/04/1326098.html 功能完全支持ie和firefox浏览器! 一般的WEB方式文件上 ...

  7. Django 用 uploadify 实现图片批量上传

    分享一下在Django中使用uploadify--一个jQuery批量上传插件--的方法.github上的django-uploadify使用的是2.1.4版本,上传button只能使用图片,不能很方 ...

  8. c mysql bulk,MySqlBulkLoader批量上传遇到的问题和解决方法

    最近用 MySqlBulkLoader 向MySql数据库批量上传数据遇到了些问题,做下记录 问题1:如图 原因:版本不合,使用的MySql版本和引用的mysql.data 版本不和 解决方案:用nu ...

  9. 批量上传文件及进度显示

    不带插件 ,自己写js,实现批量上传文件及进度显示 今天接受项目中要完成文件批量上传文件而且还要显示上传进度,一开始觉得这个应该不是很麻烦,当我在做的时候遇到了很多问题,很头疼啊. 不过看了别人写的代 ...

最新文章

  1. 源码推荐:仿写映客直播 ,快速切换主题 ,星星评分控件,表格样式,可以横向移动的表格, 仿微信键盘-
  2. selenium自动化测试多条数据选择第一条
  3. ad域帐号登录提示无法处理请求_面试官:说一下单点登录的几种实现方式
  4. 第二十讲 拉普拉斯变换求解线性ODE
  5. KMP--字符串匹配
  6. 一步步学习微软InfoPath2010和SP2010--第十四章节--高级选项(3)--重新链接表单
  7. tp5.0行为的用法,可以存入json数据,方便读取数据。
  8. 编写一个Java程序将当100,101,102,103,104,105个数以数组的形式写入到Dest.txt文件中,并以相反的顺序读出显示在屏幕上。
  9. pandas的dataframe
  10. UDP测试工具(ace版本)
  11. 安卓和iOS测试的区别
  12. 中国34个省市用字体logo 石昌鸿 字体设计-借用手法
  13. 正常图片转灰色图片——灰度图
  14. idea与电脑常用的快捷键冲突 解决办法
  15. 应届生web前端面试题_前端开发应届生面试指南(含各大公司具体指南及面试真题)...
  16. Navicat定期备份MySQL数据库,定期清理备份文件
  17. 如何将ipad作为电脑的第二显示屏
  18. ElasticSearch文档过期时间设置
  19. 期货市场的投资者适当性原则
  20. 记录更换固态硬盘免重装系统和环境的操作

热门文章

  1. 【尖端干货】H.264编码下直播视频添加水印的优化
  2. 【Android】新闻资讯APP的简易实现
  3. IOS目前比较不错的推广网站
  4. linux键盘鼠标不能使用的办法
  5. RoIPooling和RoIAlign
  6. 寻找马鞍点的c语言算法(数据结构之数组)
  7. 创维Android4.4.4,创维电视手机遥控
  8. 印度最强输出是什么?CEO!印度裔统治下的美国巨头
  9. vue.runtime.esm.js?2b0e:4603 [Vue warn]: Error in beforeCreate hook: “TypeError: this._router.init i
  10. 关于element upload组件图片上传时闪烁/空了一格问题