周末写了一个博客图片转移工具,取名 ImgDocker
主要功能是把网站文章中所有图片重新上传到可道云中,然后利用其"嵌入内容"将图片外链替换到文章中。逻辑比较简单,介绍一下思路。这是它的配置文件:
main{
sys=typecho
host=154.204.56.154
port=3306
user=
db=
pwd=
table=typecho_contents
regex=(https?:\/\/[^\s]+?\.(?:jpg|jpeg|gif|png|bmp|svg|webp))
api=https://www.ideasky.top/?
cookie=
form1=url={imgurl}&uuid={uuid}&path=getconf(path)&CSRF_TOKEN=getconf(CSRF_TOKEN)&API_ROUTE=explorer/upload/serverDownload
form2=dataArr=[{"path":"{path}","type":"simple"}]&CSRF_TOKEN=getconf(CSRF_TOKEN)&API_ROUTE=explorer/index/pathInfo
}
const{
CSRF_TOKEN=
path=
}
连接数据库后把所有文章select下来,通过配置文件中的正则表达式提取所有图片。这里的正则表达式如果你不想手写可以去问ChatGPT,非常好用!!
图片提取后使用可道云的“离线下载”功能将图片下载到指定path中。程序处理可道云api返回的json取得图片新url,替换到文章text中,最后将text转义,update到mysql。
我的config文件写法加入了一个有趣的特性,可以在一个config字段中通过getconf
函数引用另一个config字段,程序中使用递归实现。
另外,这个工具不能和可道云的webdav同时使用,否则会出现错误。
最后,请在使用前备份数据库。数据安全永远排在第一位。在此处下载本程序及源码。
暂无评论