前不久,微博图床挂了,这对于众多使用 Markdown 写技术博客的人简直太残忍了!看来,图片迁移真的是刻不容缓了,在我准备迁移图片的时候,发现了几个平台对图片不同的处理方式,觉得很有意思,所以记录一下。

本人强烈推荐使用方法五,亲测有效。

补救措施

一、在标头添加代码

<meta name="referrer" content="no-referrer" />

头部添加以上代码,防止获取敏感信息,这个作用是:在页面引入图片、JS 等资源,或者从一个页面跳到另一个页面,都会产生新的 HTTP 请求,浏览器一般都会给这些请求头加上表示来源的 Referrer 字段。Referrer 在分析用户来源时很有用,有着广泛的使用。但 URL 可能包含用户敏感信息,如果被第三方网站拿到很不安全(例如之前不少 Wap 站把用户 SESSION ID 放在 URL 中传递,第三方拿到 URL 就可以看到别人登录后的页面)。之前浏览器会按自己的默认规则来决定是否加上 Referrer。

二、利用大佬写的工具进行迁移

php写的小程序,扫描网站目录提取所有微博图床并下载到本地。

地址→

三、开源项目

微博图床一键迁移到阿里云 OSS

四、代码实现,比保存本地再上传好一些

沈唁大佬

五、使用picGo插件pic-migrater进行快速迁移

目前如果你是用markdown写博客的话,可以用PicGo的pic-migrater插件来快速将markdown里的图片地址迁移到另外的一家服务商去(迁移到你当前设置的PicGo默认图床)。
PicGo地址:PicGo
picgo-plugin-pic-migrater:

直接在PicGo的「插件设置」页面安装即可使用,每个迁移过的markdown文件会生成一个新的markdown文件,防止图片迁移失败导致的原图损失。

具体步骤:

一、首先要有新的图床,这里以阿里云OSS为例

先开通阿里云对象存储OSS,进入OSS控制台,创建一个存储空间Bucket,如图我的是:seanxia

img

然后到文件管理中新建目录,看自己情况,我这里创建了二级目录

img

二、下载picGo,并配置好图床

img

1、KeyId和KeySecret都可以在Access Key中找到

先打开OSS概况,点击右边的Access Key

img

然后就可以看到KeyId和KeySecret,KeySecret需要手机验证,Access Key没有的直接创建就好了

2、存储空间名

存储空间名其实就是Bucket的名字,一开始创建的名字

img

3、存储区域

这个在创建的时候就有,如果忘记,可以点击Bucket查看概览中的访问域名就有

img

4、指定存储路径

存储路径就是你在Bucket的文件管理中的目录,比如我创建的是两级目录:img/hexo/

切记每级目录都要加上 / ,不然就会被当做前缀而无法生效

配置好图床后就是下载插件pic-migrater了

在插件设置中搜索pic-migrater,安装完成点击配置,部分配置在pic-migrater的github上也有说明

img

img

将这一切配置好后,点击选择文件或者文件夹,比如之前写的Hexo文档放在_posts中,直接选中整个文件夹,即可自动将这个文件夹中所有Markdown文档中的图片链接进行迁移到我现在默认的阿里云OSS中。

img

等待一会儿,picGo会显示迁移成功多少张的提示,再去看文档中的图片链接,已经换到了阿里云OSS的连接了

img

再去查看阿里云OSS中img/hexo/ 下,图片已经都上传成功

img

至此,图床迁移已完成,最后在hexo进行重新发布一遍即可!

此方法适用于所有markdown文档格式的图片链接,html或者URL此插件目前不支持,已亲测。如果以后需要迁移到其他的图床,此方式也非常实用。

然后非常推荐大家使用picGo图床工具,这个开源项目真心不错,最后希望此篇文章能对大家有所帮助,谢谢!