使用CloudFlare-R2-PicList搭建一个免费的高速图床

CloudFlare-R2

Cloudflare 是全球优质的云服务商,许多人都知道它提供免费的CDN服务,还可以一定程度抵御网络攻击,但是国内的站套上后可能会出现降速的情况,所以使用情况有一定局限性。

CloudFlare R2是我们的赛博大善人CloudFlare简称CF提供的一种基于S3的存储桶服务。CloudFlare R2 是该公司提供的对象储存业务。使用这个服务作为图床是我目前选择的新方案,免费额度高,即使超出费用也不高。

具体的定价可以查看官网链接:Pricing · Cloudflare R2 docs — 定价 ·Cloudflare R2 文档

免费额度 超出收费
储存 10 GB /月
A类操作 1百万次请求/月 $4.50 /一百万次请求
B类操作 1千万次请求/月 $0.36 /一百万次请求

以上表格根据本文发布时为例,实际情况请以官方情况为准!

PicList

官网:https://piclist.cn/

PicList是一款高效的云存储和图床平台管理工具,在PicGo项目的基础上经过深度的二次开发,不仅完整保留了PicGo的所有功能,还增添了许多新的feature。例如相册支持同步云端删除文件,内置图床额外添加了WebDav、本地图床和SFTP等。PicList同时增加了完整的云存储管理功能,包括云端目录查看、文件搜索、批量上传下载和删除文件,复制多种格式文件链接和图片/markdown/文本/视频预览等,另外还有更加强大的相册和多项功能新增或优化。

同时PicList V1.5.0以上版本提供 一键迁移功能,进入 设置页面,然后在 从PicGo迁移选项点击右侧按钮即可将PicGo数据完美迁移到PicList,迁移后请重启应用生效。

开始搭建CloudFlare R2图床

请确定你使用上述两个产品,如果你使用PicGo,可以参考配置,可能与PicGo有些许出入。

准备工作:

  • 下载PicList请点击上方介绍PicList时写的官网,CF官网是:https://www.cloudflare.com/
  • 图片大陆加载速度测试结果如下:

创建储存桶

  • 注册账号的环节就不详细讲了,进入后台后找到左侧的 R2 选项,创建新的储存桶。(如果没有绑定付款方式这里会让你绑定,仅验证不会扣款,个人正常使用无需担心超出免费份额,我这里绑定的PayPal。)

  • 存储桶的名字自定义就可以了,地区根据实际选择,这里选择亚太地区以保证大陆访问速度。

给R2存储桶绑定域名

  • 首先要确定你的域名已经绑定到 CloudFlare 中.
  • 如果没添加,需要在CF首页手动点击添加网址,并解析到CF。(选择 cloudflare 的免费计划就可以了,后面需要到你的域名服务商中修改DNS的的地址,改成cloudFlare 提供的地址。)
  • 当域名成功添加到cloudflare 后,就可以将我们的图片二级域名,比如 cdn.xingchencloud.top,绑定到刚刚创建的储存桶。我这里图片示例的前缀和域名请根据你的实际情况自行举一反三替换。

  • 点击继续后再点击连接域,会自动添加解析记录。

  • 等待一分钟左右,状态就会变成有效,这时已经成功绑定自己的域名到储存桶了。

生成API管理令牌

  • 创建储存桶的API 令牌。

  • 自定义令牌名称和权限(必须要管理员读写)然后创建即可。

  • 保存记录好生成的密钥ID和访问密码,一定要保存好,这页面只显示一次

配置 PicList

打开PicList,依次点击 图床->Amazon S3 ,即可添加新图床配置。

依据我图片的信息来填写图床配置,这一步较为重要,需要认真填写。

  • 图床配置名称可以自定义,是PicList 中显示的名称
  • 应用ID 和密钥是上一步中保存下来的信息。
  • 桶就是填写储存桶的名称
  • 文件路径就是图片上传后图片在储存桶中的路径,可以依据我的内容填写,{year}/{month}/{md5}.{extName}这里的格式是年/月,然后图片md5值命名.对应后缀。
  • 地区可以不填,或者填写apac 亚太地区
  • 自定义节点,在储存桶的详细信息中可以找到
  • 自定义域名的格式 https://cdn.xingchencloud.top/{储存桶名称} 一定要加储存桶名称,要不然上传图片后复制出来的地址会出现404错误。
  • 至此,我们就可以在PicList 中愉快地管理图片了,值得一提的是,PicList 的一个特色功能:同步删除云端,当我们在软件中删除图片时,在 CloudFlare 的储存桶中也会同步删除。(不过需要在PicList相册右上角自行开启。)

设置缓存规则(可选)

R2每月有1000W免费读取次数,如果你不放心,可以再增加一层缓存,既可以减少回源读取次数,又能加速访问速度,一箭双雕!CF每个域名支持免费设置10条缓存规则,一般来说都够用了,稍微使用点技巧也用不了几条。

在菜单中找到缓存,打开Cache Rule,点击创建规则

输入规则名称(随意),设置匹配规则,这里我们直接设置为主机名是你上文设置的那个域名即可。当然匹配规则还有很多其他的维度可以选,支持等于、包含、开头、结尾等运算符,按自己实际要走CDN的资源设置即可。

继续往下拉,在缓存资格中选择符合缓存条件;在边缘TTL种点击添加设置,然后选择忽略缓存控制标头,使用次TTL,然后在输入生存时间(TTL)中选择一个时间,免费账号支持最短2小时、最长1年,最为图床的话建议越大越好,尽量减少回源,也就是减少R2存储桶的B类操作次数。

最后拉到页面最底部,点击右下角的部署,等待30秒即可生效,从此你的图床就是跑在CDN上面了。