前言

经过几个小伙伴的提醒,发现个人博客中的许多图片都裂了无法访问;原因就不多说,既然出现问题就得要解决。

原本我的处理方式非常简单粗暴:找到原有的图片重新下载下来上传到新的可用图床再把图片地址替换。

这样搞了一两篇之后我就绝望了。。。

之前为了代码能在公众号里也有好的阅读体验,所以能截图的我绝不贴代码,导致一篇文章多的得有十几张图片。

好在哪位大佬说过“以人肉XX为耻”,这种重复劳动力完全可自动化;于是便有了本次的这个工具。

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

运行效果如下:

使用

可以直接在这个地址下载 jar 包运行:https://github.com/crossoverJie/blog.toolbox/releases/download/v0.0.1/blog.toolbox-0.0.1-SNAPSHOT.jar

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

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 重新执行程序它会自动过滤掉已经替换的图片,不会再做无用功,这点可以放心。

图片保存

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

总结

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

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

  • 图床上传失败自动切换到可用图床。
  • 整体处理效率提升。
  • 任务执行过程中更好的进度展现等。

再次贴一下源码地址:

https://github.com/crossoverJie/blog.toolbox

你的点赞与分享是对我最大的支持

转载于:https://www.cnblogs.com/crossoverJie/p/10836405.html

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

  1. 2023彻底解决Typora使用iPic微博图床失效问题

    一.问题描述 用Typora搭配iPic图床使用,最近csdn图片显示不出来 用浏览器打开图片显示403,这里原因是微博图床出问题了导致的 而使用iPic其他图床则需要一直付费,那有没有一劳永逸的解决 ...

  2. b站(BiliBili)图床失效问题

    Q 一直使用Typora +Picgo +BiliBili 图床的方式进行日常记录学习,不过今天发现昨天使用B站上传的图片全都不显示了 ,一开始以为本地电脑环境的问题 ,结果登录多个自媒体分享平台(我 ...

  3. hexo博客微博图床失效解决办法

    最近在v2ex上看到有人说微博图床开始限制外链了.当时我看了看我的博客,图片还好.第二天再去看的时候就挂了.评论里有人说改一个no-ferrer能解决. 记录一下操作方法. N:\blog\theme ...

  4. 发现一个微博图床API和图片上传代码

    网上寻到一款微博图床的插件,然后顺藤摸瓜找到了原作者的API代码. API文件: 1 <?php 2 /** 3 * 上传图片到微博图床 4 * @author Youngxj & me ...

  5. 域名使用cname方式跳转不到新域名_七牛云图床和Markdown使用

    1.图床是什么? 图床一般是指储存图片的服务器,有国内和国外之分.国外的图床由于有空间距离等因素决定访问速度很慢影响图片显示速度.国内也分为单线空间.多线空间和cdn加速三种.来自百度百科 2.为什么 ...

  6. 直接用自己服务器做图床可以吗_图床趣事

    作为一个社畜苦逼程序员,已经使用Markdown编写笔记已经持续了很久时间了. Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(英语:John Gruber).它允许人们使用易读易写的纯文 ...

  7. Typora 图床教程(阿里云版)

    由于码云现在需要登录才能看到相关图片文件后,导致我们已经不能愉快的使用它作为图床了,所以我们需要使用其他工具来作为图床使用了,本文使用阿里云OSS作为Typora的图床. 阿里云OSS相较于其他几个方 ...

  8. 想方便快捷的分享/收藏图片?试试免费好用的微博/b站图床

    苏生不惑第130 篇原创文章,将本公众号设为星标,第一时间看最新文章. 最近我整理了几个专辑(就是文章开头那个来自专辑,收录了我整理的一系列文章),可点击下面链接进入,欢迎在看收藏. 玩转微信系列 实 ...

  9. PicGO搭配vika,好用的图床

    PicGo简介 ​ PicGo是一款图片上传工具,对于写文档想把图片上传到图床上的人来说,简直是一款神器,配合Typora不要太好用,他其中提供了很多插件,可以和很多流行图床兼容. 一些吐槽 ​ 图床 ...

最新文章

  1. python排序链表_合并K个排序链表
  2. 【MCtalk讨论】 短视频平台出路在何方?
  3. 前端动态获取servlet虚拟路径_Day40_Servletamp;HTTPamp;Request
  4. Thinkphp3.2 中使用find_in_set
  5. 【piu~】制作一只变形小鸡~
  6. python dir()
  7. 利用高斯金字塔制作图像显著图
  8. 关于马克飞象中的Latex语法与CSDN中的区别
  9. ai作文批改_每日即评 | 积极适应“AI批改作文”的潮流
  10. python udp
  11. 产品经理的私房菜 - 腾讯产品模型 - 学习能力篇
  12. 『贪心』阿狸和桃子的游戏
  13. Linux内核之32/64位除法
  14. Gaussian Mixture Model:混合高斯模型介绍
  15. [洛谷]P1010 [NOIP1998 普及组] 幂次方
  16. 【技术分享】链路聚合
  17. 如何注册全部DLL文件以及DLL简要说明
  18. python股票代码示例_python实例:从excel读取股票代码,爬取股票信息写到代码后面的单元格中...
  19. 期待您加入!CSDN招募优质英文布道者
  20. [离散数学]集合论基础P_3:集合的基本运算

热门文章

  1. 如何提高后台服务应用问题的排查效率?日志 VS 远程调试
  2. 虚拟机和Docker的最大区别
  3. php k线 形态识别,趋势追踪,从设计交易系统开始(七)——形态识别,不只有K线...
  4. linux中mysql数据库启用日志记录_MYSQL启用日志,和查看日志
  5. python集合运算_Python 集合set()添加删除、交集、并集、集合操作详解
  6. android 权限管理框架,Android 运行时权限管理最佳实践
  7. php随机获取一行文本,一行PHP随机字符串生成器?
  8. python学习-图片处理小程序(PIL的安装、PIL.Image的使用、 示例程序(图片灰度值修改))
  9. mysql的c接口_mysql C接口大全
  10. 计算机玩游戏不能全屏,玩游戏屏幕两边有黑条?教你简单几步轻松解决-win7玩游戏不能全屏...