跳到主要内容

使用Cloudflare R2迁移你的博客图片

1. 前言

最近玩上了Cloudflare(下面统称CF),总算是把之前阿里oss的所有博客图片都迁移到CF的R2,免费的40G存储空间,而且不限出口流量费,CF他真的,我哭死。

所以这篇文章主要讲的是怎么使用CF的R2,和把你之前写的博客.md文件中的所有图片通过java迁移到cloudflare中。

2. 准备你的CF R2

这个环节你需要准备

  • 一张信用卡或者paypal,虽然CF的免费额度你几乎用不完,但是在开通的时候还是需要一张信用卡的绑定,而且需要至少有1美元的额度,CF会预扣款校验信用卡能不能用,另外国内的信用卡也是可以的。
  • 一个域名,在其他云服务厂商购买的都行

2.1 登录官网进行注册:https://www.cloudflare.com/

注册完成之后,选择右上角的添加站点,把你的域名填入进去

接着下一步、下一步,CF会自动扫描域名原有的DNS记录并记录,然后到DNS域名解析的时候,你需要在原有的购买域名的云服务厂商那配置DNS服务器为CF指定的。

2.2 百度云的在域名服务中的,域名信息里面可以更改

跳转到百度云

2.3 GoDaddy的则是在域名服务器中设置

跳转到godaddy

设置好之后,等待10来分钟,CF会自动检测你的域名服务器配置是否已经生效,生效后会邮件通知你。

2.4 开通R2

选择R2,然后绑定你的信用卡或者Paypal,他们的付款服务比较慢,甚至页面可能会抛错,需要耐心等待一下。而且绑定的时候最好不要挂梯子,小心信用卡的CRC泄漏。

之后你会收到一个预付款的扣费,验证信用卡后,这笔钱会在之后退回给你的。

3. 配置R2

新建个bucket存储桶,填个名字创建。

接着转到设置那里,点击连接域,写你的域名的子域名,比如我的博客主站是runnable.run,那么我希望图片的域名则是img.runnable.run ,如果上面你的域名DNS在CF中已经校验过了,就会自动给你配置好DNS。

连接域成功后,会显示如下图所示

4. 把你博客中的图片都上传到CF

这里有两种方案,

一种你手动上传,通过网页或者是picgo, picgo中可以选择CF作为上传的源,上传界面如图

具体的使用说明可以参考这篇博客:cloudflare认识3(Typora结合picgo直接上传图片到CF)

我嫌弃这种方式太慢了,毕竟之前写了200多篇博客,所以干脆用java写了个项目,批量上传了。

4.1 通过Java上传你博客中的图片到R2

这里使用springboot随便创建了一个,已经提交在github:upload-blog-pic

支持以下功能:

  • 下载.md文件中的图片,并上传到CF,并生成新的.md文件
  • 替换![xxx]()中的xxx内容为“”

4.2 创建CF令牌

在使用这个之前,你需要在CF中创建一个令牌

这些信息你需要先记录下来,等等会用到。而且关闭之后不会再显示在CF中,记得先做保存。

4.3 运行项目

项目拉取下来之后,创建一个文件夹,放入你的.md文件。

接着在代码中进行配置

例如:

执行时打印日志如下:

新生成的.md文件以re- 开头