EdgeOne 搭配 Cloudflare 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/
(你的图片域名)
包好用的。相信我。