# 将md文档中的本地照片批量上传到图床并修改文档中的链接 **Repository Path**: hydrogenion/md-image-auto-upload ## Basic Information - **Project Name**: 将md文档中的本地照片批量上传到图床并修改文档中的链接 - **Description**: 将md文档中的本地图片批量上传到图床 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 1 - **Created**: 2022-01-05 - **Last Updated**: 2022-12-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 将md文档中的本地图片格式转换并自动上传到图床 ### 介绍 将md文档中本地的图片全部上传到图床并且更改`md`文档中的路径 支持批量处理一个文件夹中的所有md文件(自动处理,包括子文件夹) 提供两种方式 - 直接上传到图床 - 将图片传到本地git仓库,处理完成后将本地仓库push到远程仓库(适合将使用`Gitee`或者`Github`做图床情况) ### 处理效果如下图 - 原文件中内容 ![image-20220106003131045](https://gitee.com/hydrogenion/drawing-bed/raw/master/test/image-20220106003131045.png) ![image-20220106002918351](https://gitee.com/hydrogenion/drawing-bed/raw/master/test/image-20220106002918351.png) - 处理后内容 ![image-20220106003000687](https://gitee.com/hydrogenion/drawing-bed/raw/master/test/image-20220106003000687.png) ![image-20220106003017169](https://gitee.com/hydrogenion/drawing-bed/raw/master/test/image-20220106003017169.png) - 效果如下图所示 ![image-20220106003748620](https://gitee.com/hydrogenion/drawing-bed/raw/master/test/image-20220106003748620.png) - 处理后的文件 文件命名为其路径+原文件名(不包括盘符) ![image-20220106003849761](https://gitee.com/hydrogenion/drawing-bed/raw/master/test/image-20220106003849761.png) ### 使用说明 使用下面命令将项目拉倒本地 ```git git clone https://gitee.com/hydrogenion/md-image-auto-upload.git ``` 修改下列路径为本地对应路径 ```java // 需要处理的文件所在文件夹,自动检索子文件夹 public static String basePath = "D:\\大三上"; // 非直接上传模式照片存储路径(本地git仓库的路径) public static String imgStorePath = "D:\\drawing-bed-two\\img\\"; // 非直接上传模式照片上传后访问的前缀 public static String imgUploadPrefix = "https://gitee.com/hydrogenion/drawing-bed-two/raw/master/img/"; // 处理后的文件输出路径 public static String fileStorePath = "D:\\blogs\\笔记\\笔记汇总\\"; // 上传文件的命令,需要再拼接文件路径,这里使用的picGo-core,也可以使用其他的上传工具 public static String uploadCommand = "cmd /d/s/c C:\\Users\\tux\\AppData\\Roaming\\Typora\\picgo\\win64\\picgo.exe u "; // 需要检测的图片后缀 public static String[] imgSuffix = {".png", "jpg", "jpeg"}; ``` > picGo-core的配置方法请参考[Typora+PicGo-core插入图片自动上传,gitee,gitgub,sm.ms三种免费图床_jaymie的博客-CSDN博客_picgo-core](https://blog.csdn.net/jaymie1023/article/details/105361168/) > > 上传后的照片前缀为除文件名的其他部分 - 如果为模式一,程序运行完成即可在生成的文件中预览 - 如果为模式二,需要进入本地git仓库中push后才可在生成的文件中正常预览 #### 参与贡献 > 本程序有一个很明显的问题是模式一的上传速度过慢,在上传照片时需要等待上一张照片上传完成后才会继续处理,而照片速度又非常慢(120张图大约需要两分钟),进过思考后这里其实是可以优化的,可以新建线程去处理上传照片的过程,将其路径直接使用模式二类似的构造方法即可,但是考虑到处理图片的量多了可能会上千张,同时建立上千个线程不知道会有什么后果,由于个人技术问题这里并没有处理,具体的函数为`uploadImage`,如有大佬感兴趣或者发现任何bug欢迎提pr 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request