为什么想要把微博图床的图片搬迁了?因为微博已经防盗链了。这都已经好几个月的事情了。我一直在header里面添加:来将就使用。
既然还可以将就,为什么又要搬迁?原因在于,使用这种方法,从网站跳转到其他地方,会被判定无来路。这对于统计代码和广告联盟非常不友好。
为什么选择github。一是因为搬移方便,不花钱,完全免费,而且github的金主爸爸是微软,基本上不存在跑路的情况。
为什么解说方便,取个例子:
微博图床地址: https://ww4.sinaimg.cn/large/0066HsmBgw1evpmwfal4qj30m80cijv0.jpg 搬迁Github地址: https://github.com/liumengli07/pic/raw/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/0066HsmBgw1evpmwfal4qj30m80cijv0.jpg
正是文件名不会改变,可以直接更换图片前面的固定路径。搬迁起来省事。同样的方法,适用于阿里云oss,但是收费的。舍不得这个钱。
小白我完全就是0基础,从来没有使用过github,倒是在上面白漂了一些开源项目。所以,本文的教程,针对0基础的新人也算是十分友好。
主要参考了下列文章:
http://jingpin.jikexueyuan.com/article/36279.html
https://blog.csdn.net/lililuni/article/details/83144090
现在开始操作(由于我自身操作过程中的截图丢失,所以下面引用了是别人的图片):
先是注册账号,这个没有什么讲的。https://github.com/
然后下载github客户端 GitHub for Windows,直接去这个网址下载就好了:http://windows.github.com/
账号注册好了之后,会直接就让你添加一个repository,属性选择publick。这其实就是创建仓库,如果没有弹出直接让你添加,也可以参考下面的步骤进行:
1、在页面的最右上角,你的头像的左边,点击“+”,在弹出的下拉选项中选择“New repository”。
2、在仓库名称输入框中输入你的仓库名称:“hello-world”。
3、写一个简短的描述。
4、勾选“Initialize this repository with a README”。
接下来安装GitHub for Windows,这过程很简单,一直next后就好,安装好后用自己的GitHub登录,整体界面如下,这个界面和网上讲的一些界面不一样,所以在操作上也会有所不同,但大同小异。
打开之后,选择右边的克隆到本地:
1:先在本地建个文件夹,用于存储克隆下来的资料,我的文件夹位置为 H:\GitHub
2:点击上图最右边的 Clone a repository,出现下面界面,填写完信息点击最下面的clone
这样就把repository这个项目文件在本地保存了一个目录。接下来就是wordpress上微博图床图片的操作了。
分三步走:
1 、将wordpress里的新浪的图片全部下载到本地。
我在这里走了不少弯路。
第一个方法是使用火车头采集器,将整站文章爬取下来,一篇文章保存成一个html。然后使用查找工具,搜索:sinaimg,将所有相关的代码复制出来。再使用正则提取工具,提取出来图片链接。这个方法又费时,又笨。
后面找到了更简单的方法(推荐):
在phpmyadmin里面将wp_posts这个表导出sql备份到本地。然后用记事本打开。我的数据库这个文件有3M多,这个方法可行。然后再正则提取出来。提取出图片链接之后。使用IDM下载器,剪帖板下载。把图片全部下载到本地。迅雷其实也可以代替。我大概有5000多张。
2。将图片上传到github项目里。操作方法如下:
把图片复制到github克隆在本地的路径里。
再在GitHub Desktop的软件里,进行记录。然后点击上传。
不得不说,github的上传速度还是可以的。几M每秒。几百M的图片一会儿就传完了。
这样,登录github网页就能看到图片了。点击它就会弹出url。
https://github.com/liumengli07/pic/blob/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/005BcU4hgw1esu44w3fkwj30dw0930ty.jpg?raw=true
将其中的blob修改raw,就可以直接插入到文章里了。如下是最终结果。
https://github.com/liumengli07/pic/raw/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/005BcU4hgw1esu44w3fkwj30dw0930ty.jpg
3、批量替换wordpress文章里的微博图片。这要执行sql代码:
UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://ww1.sinaimg.cn/large/', 'https://github.com/liumengli07/pic/raw/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/'); UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://ww2.sinaimg.cn/large/', 'https://github.com/liumengli07/pic/raw/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/'); UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://ww3.sinaimg.cn/large/', 'https://github.com/liumengli07/pic/raw/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/'); UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://ww4.sinaimg.cn/large/', 'https://github.com/liumengli07/pic/raw/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/'); UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://wx1.sinaimg.cn/large/', 'https://github.com/liumengli07/pic/raw/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/'); UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://wx2.sinaimg.cn/large/', 'https://github.com/liumengli07/pic/raw/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/'); UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://wx3.sinaimg.cn/large/', 'https://github.com/liumengli07/pic/raw/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/'); UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://wx4.sinaimg.cn/large/', 'https://github.com/liumengli07/pic/raw/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/'); UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://ws1.sinaimg.cn/large/', 'https://github.com/liumengli07/pic/raw/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/'); UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://ws2.sinaimg.cn/large/', 'https://github.com/liumengli07/pic/raw/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/'); UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://ws3.sinaimg.cn/large/', 'https://github.com/liumengli07/pic/raw/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/'); UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://ws4.sinaimg.cn/large/', 'https://github.com/liumengli07/pic/raw/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/'); UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://tc.sinaimg.cn/maxwidth.2048/tc.service.weibo.com/p/flzj_net/', 'https://github.com/liumengli07/pic/raw/d984289c3b2f31bfcaccc299e04ba13e22451349/gzkd/');
我总结出来要替换的路径有这么多。后面github图片的路径大家根据自己的实际情况进行修改,不可照搬。
我的博客从2013年就开始了,几年的数据,这个路径换了好几个波,鱼龙混杂。基本上将微博图床所有的服务器都经历了一遍。
这样总算是搬迁成功了。
但是,我最终却放弃了github免费图床,为什么呢?
原因只有一个:图片加载异常缓慢(大家可以打开文章开头的那个github图片,看看加载情况)。跟新浪微博图床的速度完全不在一个档次。也远不如阿里图床。
所以,折腾了一下午之后。最终白瞎了,直接放弃。
更有效的方法是:仍然使用微博图床,毕竟速度相当理想,然后通过代码对图片进行处理。(详情参考这篇文章:【亲测有效】wordpress主题文件function.php增加几行代码,完美解决新浪微博图床防盗链)