将WP文章中500张不同图床的图片统一转到CloudFlare R2管理

最后更新于 2025-07-27 27 次阅读


AI 摘要

将WP文章中500张不同图床的图片统一转到CloudFlare R2管理 我一直想把存储在多个图床的图片统一处理,随着时间过去,发现自己管理的图片已经零散分布在WordPress的媒体库、多个图床以及过期链接中。为了更好地整理这些图片,我决定使用CloudFlare R2,特别是它的免费额度以及API支持。 我的计划是通过一个自动化工具来简化转移过程,不再手动操作,而是要能快速替换原链接为新链接。最终,我开发了名为CloudFlareR2-MDuploader的工具,支持三种模式:完整Markdown粘贴,传统的文件上传方式,以及命令行界面。借助这个工具,我顺利地完成了500多张图片的迁移工作。

我早就想这么干了,从研究自己搭建线路,第一次了解了vps、Wordpress这些东西,对着教程瞎配置,到现在好几年过去了技术没啥长进,但是QQ空间里本来该有的内容算是被我给搬过来了

而就在这样的学习过程中,终于到了不得不把当年留下的一些屎清理一下的时间了,就是这些图片的存储。我现在有70篇文章100多条说说,最后总结下来500张图片,他们被我随意的分布在Wordpress本地媒体库、本地upload文件夹但是没被读取到媒体库中、本地媒体库但是用的是之前已经过期的域名链接、聚合图床、聚合图床国际版、imgdb.cn、imgbox、谷歌出来的网图链接 等等大大小小,有的屏蔽国外有的屏蔽国内的图床中,所以最近刚刚换新服务器,我想是时候像个办法整理一下这些图片了

首先我的需求和期望的方案如下

我要把一个数量级不是很大、总占用存储空间不大、单个文件也很小的一堆图片统一放到一个图床中,图床理想的状态是,价格比较便宜,中国和美国访问都比较流畅,运营久稳定不会跑路,最好还有API方便我提高转移的效率

然后转移过程就以输入一个链接输出一个链接为可以接受的最低效率,实在不行我就每天手动搬个一小时砖,一个礼拜怎么也把这些图片清理干净了

而最后我的方案如下

选择CloudFlare R2存储, 首先大善人给的免费额度我根本用不完, 然后我最近公司的业务让我了解了一点Amazon s3的使用, 感觉挺方便的, CF的访问速度也算是在除了中国是没话说的, 回中国了最起码也不至于连不上, 而且s3协议完善的API功能可以后续对接到其他图床, 而且在我全面更换统一的图床之后, 之后再换图床也可以使用全局替换的方式直接操作

而具体实施上, 还是要以手动替换为主, 但是肯定不会是我自己下载一张, 去网页上传一张, 点击, 复制链接, 再加上自己的域名, 再粘回去, 那真是纯体力活了

肯定是要自动化的, 而且涉及到有些图床链接中国访问不了, 有些美国访问不了, 就必须是一个同时能部署在本地和中国服务器的自动化
具体实现上, 针对我用的比较多的imgbox, 应用要能实现输入超链接html标签, 返回img标签, 同时保留width属性(还好我是个懒狗, 一直都只用一个width属性控制图片大小), 其他的img标签, 纯url也同理, 然后在几次需求的追加和代码的迭代后, 全力倚cursor, 我搞出了CloudFlareR2-MDuploader

Github-Card

支持三种模式:

  1. 全文markdown粘贴, 自动识别所有图片标签, 下载并上传(顺便随机重命名一下), 然后自动替换原链接, 保留width属性

image.png

  1. 传统的拖拽/选择文件/剪贴板粘贴 上传方式,自动下载上传, 返回url, html标签, markdown标签, 点击复制

image.png

  1. 命令行界面, 是我最开始编写使用的交互逻辑, 只想要输入一个图片标签/url, 然后下载, 上传, 返回一个img标签, 保留width属性

image.png

再之后, 依然是手动的搬砖, 没办法工具再高效还是要搬, 不过有了工具一下午就完成了这500多张图的全面迁移