我就是手贱
本文介绍使用腾讯云 EdgeOne 为 Cloudflare R2 图床加速,改善国内访问图片缓慢的问题,涵盖 EdgeOne 站点创建与域名配置、HTTPS 证书签发,以及 PicGo 上传设置。文章对比 EdgeOne、Vercel 与直连 R2 的访问效果,并给出实用配置,适合想自建博客图床的读者。

Cloudflare 赛博大善人我就不多说了,R2 10GB 存储空间,用来存博客图片这辈子都用不完。
然而,CF 的节点在国内的访问速度真的一言难尽,全跑美国了,加载个图片要等十几秒你敢信?
是时候让腾讯云出马了!它的海外版 EdgeOne 不仅免费,而且免备案,可用于加速 R2 的图片分发。
本博客就用了 Edgeone 加速 R2,虽然比不上 Vercel,但是无限流量用来做图床很好用(看看下面的对比吧,第一个 Vercel,第二个 EdgeOne,第三个纯 R2)。



获取 EdgeOne
这部分很简单,直接打开 https://edgeone.ai/,然后获取免费套餐即可。需要注册一个账号。
需要注意的是 EdgeOne 会提示你测速然后分享才能获取免费版(也就是帮官方宣传一下,现在用的人少),实际上你测完速度之后点一下分享就好了,没必要真的把帖子发出去。
警告:不要滥用 EdgeOne。官方提示不允许免费套餐用于大文件传输,比如游戏安装包。仅供个人和小型企业开网站使用。
配置 EdgeOne
首先,你得有域名,才能激活 Edgeone。
这部分跟着提示走就行了,加速区域选全球可用(不含中国大陆)即可。
接下来你应该会看到这个界面,选择域名服务-域名管理,添加域名(我这里已经加了)。

然后你会看到这个界面。加速域名自己选,然后回源选择对象存储。打开私有访问授权。

现在重点来了,打开你的 R2 API 管理,整一个对象只读或者读写的 Key。指定你想用的存储桶,防止安全问题:

然后你会得到你的 API,把 ID 和密钥分别填入 EdgeOne 的私有访问授权。地域你可以填 auto,或者你创建存储桶时候的地域。

接下来,复制下面的那个终结点,然后在网址前面加上存储桶名称,改成
https://<存储桶名称>.123456abcdefg.r2.cloudflarestorage.com,填入 EdgeOne 的源站地址。保存。
然后根据提示去你的域名提供商那面配置 DNS 即可。
颁发 https 证书
现在你可以试试访问你的加速域名,会报 http 5 开头的错误。cf 会提示你 https 证书有问题。这是因为 EdgeOne 还没发证书,但是 R2 默认有证书。
那么我们来领取证书。
很难崩的事情是,我当初找了半天都没看见证书在哪里领,实际上你的屏幕不够长它会藏起来,你要先向右拖动:

选择申请免费证书,等一会就能用了。
Picgo 食用指南
Picgo 可以自动上传图片,然后把图片直链或者 MD/html 格式的链接给你。
是的,你可以用 PicGo 的插件 picgo-plugin-s3 访问 R2,食用你的图床,提供自动重命名功能。本博客的图片都是按照时间戳来命名的,然而一通配置后输出的 URL 根本用不了。结果折腾几小时,发现是它自己的 Bug 我是真没想到。于是我就给作者交了个 Issue,见 #58
分享下规避这个 Bug,能用的配置。
- 上传文件路径中,配置
{timestampMS}.{extName} - 设置输出图片 URL 前缀中,配置
https://img.samhou.top/(你的图片域名)
包好用的。相信我。
版权声明
作者:Sam Hou
原文链接:https://blog.samhou.moe/edgeone-with-r2/
本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请保留此版权声明,注明来源 SamHou's Blog!