图床失效了?也许你应该试试这个工具

简介: 个人博客中的许多图片都裂了无法访问,于是便有了本次的这个工具。它可以一行命令把你所有 Markdown 写的内容中的图片全部替换为新的图床。

本次的这个工具。


它可以一行命令把你所有 Markdown 写的内容中的图片全部替换为新的图床。


运行效果如下:



使用


可以直接在这个地址下载 jar 包运行:github.com/crossoverJi…


当然也可以下载源码编译运行:


git clone https://github.com/crossoverJie/blog.toolbox
mvn clean package
java -jar nows-0.0.1-SNAPSHOT.jar --app.downLoad.path=/xx/img /xx/xx/path 100


看运行方式也知道,其实就是用 SpringBoot 写了一个工具用于批量下载文中出现的图片同时上传后完成替换。


  • 其中 app.downLoad.path 是用于将下载的图片保存到本地磁盘的目录。


  • /xx/xx/path 则是扫描 .md 文件的目录,会递归扫描所有出所有文件。


  • 100 则是需要替换文件的数量,默认是按照文件修改时间排序。


如果自己的图片较多的话还是有几个坑需要注意下。


线程数量


默认是启动了两个线程去遍历文件、上传下载图片、更新文本等内容,其中的网络 IO 其实挺耗时的,所以其实可以适当的多开些线程来提高任务的执行效率。


但线程过多也许会触发图床的保护机制,同时也和自己电脑配置有关,这个得结合实际情况考虑了。


所以可以通过 --app.thread=6 这样的参数来调整线程数量。


图床限制


这个是图片过多一定是大概率出现的,上传请求的频次过高很容易被限流封 IP。


{"code":"error","msg":"Upload file count limit. Time left 1027 second."}


目前来看是封 IP 居多,所以可以通过走代理、换网络的方式来解决。


当然如果是自搭图床可以无视。


重试


由于我使用的是免费图床,上传过程中偶尔也会出现上传失败的情况,因此默认是有 5 次重试机制的;如果五次都失败了那么大概率是 IP 被封了。


即便是 ip 被封后只要换了新的 ip 重新执行程序它会自动过滤掉已经替换的图片,不会再做无用功,这点可以放心。


图片保存



默认情况下,下载的图片会保存在本地,我也建议借此机会自己本地都缓存一份,同时名字还和文中的名字一样,避免今后图床彻底挂掉后连恢复的机会都没有。


总结


这个程序的代码就没怎么讲了,确实也挺简单,感兴趣的可以自己下来看看。


目前功能也很单一,自用完全够了;看后续大家是否还有其他需求再逐渐完善吧,比如:


  • 图床上传失败自动切换到可用图床。


  • 整体处理效率提升。


  • 任务执行过程中更好的进度展现等。


再次贴一下源码地址:


github.com/crossoverJi…


相关文章
|
Ubuntu Linux 内存技术
Linux下使用alsamixer配置系统默认的声卡设备(默认音频输出设备、输入设备、系统音量)
Linux下使用alsamixer配置系统默认的声卡设备(默认音频输出设备、输入设备、系统音量)
6773 0
Linux下使用alsamixer配置系统默认的声卡设备(默认音频输出设备、输入设备、系统音量)
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
大型行动模型(LAM)全解析:从概念到落地的完整指南
大型行动模型(LAM)正推动AI从“能说”迈向“会做”的革命。据中国信通院报告,全球智能体市场将从2024年51亿美元增至2030年471亿美元,年复合增长率达44.8%。LAM融合多模态感知、任务规划与环境交互,实现“思考即行动”,在办公自动化、智能客服、数据分析等场景展现强大潜力。微软研究表明,LAM在Word操作中任务成功率高达71%,效率较GPT-4o提升近3倍。作为企业“数字员工”,LAM正重塑AI应用格局,开启智能行动新纪元。
1544 0
|
11月前
|
存储 SQL 测试技术
抖音集团基于Paimon的流式数据湖应用实践
本文整理自抖音集团数据工程师在Flink Forward Asia 2024的分享,围绕流式湖仓架构的背景、实践与未来展望展开。内容涵盖实时数仓架构演进、Paimon的应用与优化,以及在长周期指标计算和大流量场景下的落地实践经验。
912 0
|
NoSQL Java MongoDB
SpringBoot中MongoDB的那些骚操作用法
MongoDB作为一种NoSQL数据库,在不需要传统SQL数据库的表格结构的情况下,提供了灵活的数据存储方案。在Spring Boot中可以通过官方SDK、Spring JPA或MongoTemplate等方式集成MongoDB。文章重点介绍了Spring Data MongoDB提供的注解功能,例如`@Id`、`@Document`和`@Field`等,这些注解简化了Java对象到MongoDB文档的映射。此外,文中还讨论了MongoTemplate监听器的使用,包括设置主键值和日志记录等高级特性。
759 0
SpringBoot中MongoDB的那些骚操作用法
|
Linux 网络安全 虚拟化
linux怎么把文件传到docker里面
在现代应用开发中,Docker作为流行的虚拟化工具,广泛应用于微服务架构。文件传输到Docker容器是常见需求。常用方法包括:1) `docker cp`命令直接复制文件;2) 使用`-v`选项挂载宿主机目录,实现数据持久化和实时同步;3) 通过SCP/FTP协议传输文件;4) 在Dockerfile中构建镜像时添加文件。选择合适的方法并确保网络安全是关键。
1758 1
课时4:JDK简介
课时4:JDK简介。主讲人李兴华,内容分为两部分:1. JDK的具体内容;2. JDK的下载。JDK(Java开发工具包)是Java开发的核心工具,提供编译和解释功能,必须通过官方网站下载并配置。目前主要版本为JDK 10,历史版本包括JDK 1.0、JDK 1.2、JDK 1.5、JDK 1.8等。JDK下载页面提供多平台支持,需先接受协议再选择适合的操作系统版本进行下载。安装完成后即可搭建Java开发环境。
400 0
|
机器学习/深度学习
探索机器学习中的过拟合与欠拟合:原理与实践
在机器学习的领域中,过拟合和欠拟合是影响模型性能的两大关键问题。本文将深入解析这两个现象的原理,并通过具体案例探讨如何在实际项目中有效应对它们,从而提升模型的泛化能力和预测准确性。
926 27