Kua herea a Backblaze B2 ki tētahi rohe ritenga Cloudflare (e whiwhi ana i te 100% o ngā manuhiri kore utu)

想用 Backblaze B2 打造超低成本存储,却不知道怎么绑定域名?本文手把手教你 Backblaze 接入 Cloudflare 自定义域名的全过程。

详细拆解 DNS 解析、SSL 证书配置及路由规则设置,带你完美利用带宽联盟,实现 100% 免下行流量费,现在就解锁级避坑配置指南!

前几天折腾图床,想把博客的图片全部搬到 Backblaze B2 上,配合 Cloudflare CDN 做加速。

结果这一搞,就是一下午。

网上教程东一篇西一篇,不是漏了这步就是错了那步,搞得我心态有点崩。弄完之后想了想,干脆把全部过程从头到尾捋一遍,省得后面还有人跟我一样踩坑。

Kua herea a Backblaze B2 ki tētahi rohe ritenga Cloudflare (e whiwhi ana i te 100% o ngā manuhiri kore utu)

先说结论:这套方案确实是香。Backblaze B2 每天有免费额度,搭配 Cloudflare 的 CDN 缓存,速度够快,成本几乎为零。一个月跑下来,账单为0的那种(超过免费额度最多可能也几毛钱)。

好了,不废话了,直接开搞。

第一步,注册 Backblaze 账号和 Cloudflare 账号。这个没啥好说的,有手就行。

创建存储桶

注册完之后,进 Backblaze 后台,点 My Account 然后 Buckets,再点 Create a Bucket。

桶的名字随便起,关键是访问权限要选「公开」。其他全部默认就行。

创建存储桶

创建好之后,你可以先传一张图片上去,看看能不能访问。点开图片详情,会看到一个链接,大概是这种格式的:

https:// f005.backblazeb2. com/file/bucket-name/xxxxx.jpg

上传图片

这个域名是 Backblaze 官方随机分配的,说实话不太好看,而且直接暴露了你的存储桶信息。所以下一步,上 Cloudflare。

DNS

在 Cloudflare 里添加你的站点,如果你已经在别的地方买过域名了,就选「添加站点」然后把 DNS 改成 Cloudflare 的 nameserver,像什么 danica.ns.cloudflare.com 这种,它会有详细指引告诉你每一步怎么操作。

DNS

Tāpirihia te pae

添加完站点之后,加一条 DNS 记录。

类型选 CNAME,名称填你想要的子域名比如 oss,目标填你刚才从 Backblaze 拿到的那个域名,比如 f005.backblazeb2 .com。代理状态记得打开那个橙色云朵,这样才能走 Cloudflare 的 CDN。

添加DNS记录

到这一步,你就可以通过自己的域名访问图片了,像这样:

https:// oss.xxx .com/file/bucket-name/xxxxx.jpg

比原来那个随机域名好看了不少,但还不够。因为 URL 里还带着 /file/bucket-name/ 这一串,既丑又暴露了你的存储桶结构,感觉不太安全。

重写URL路径

进 Cloudflare 后台,点规则然后概述,再点 URL 重写规则,新建一条规则。

URL重写规则导航

规则名称随便写,请求 URL 选「不包含」,然后填 /file/ 就行了,意思是只对那些不带 /file/ 路径的请求做处理。

但如果你想让规则更精确一点,可以直接匹配你那个子域名。

创建URL重写规则

最后一个框里填:

concat(/file/桶名, http.request.uri.path)

然后部署。

搞定之后,访问效果就变成了:

https:// oss.xxx.com/ xxxxx.jpg

干干净净,啥多余的东西都没有。

舒服了。

清理不必要的响应头

这一步是可选的,但我建议你做一下。

Backblaze 的响应头里带了一堆以 x-bz- 开头的信息,像什么 x-bz-file-id、x-bz-file-name、x-bz-content-sha1 这些。这些信息对外暴露了你的文件存储细节,没必要让用户看到。

操作跟刚才差不多,还是在规则那里,选「响应标头转换规则」,建一条新规则。

响应标头转换规则

设置删除这些标头:

x-bz-content-sha1
x-bz-file-id
x-bz-file-name
x-bz-info-src_last_modified_millis
x-bz-upload-timestamp

其中 x-bz-info-src_last_modified_millis 这个我目前好像没看到有,但官方教程里写了,我也加上了,总之没坏处。

然后还有一条规则也很重要。

优化缓存效率。Cloudflare 这边可以设置一个响应头规则,把 ETag 的值设成 Backblaze 返回的那几个响应头的拼接:

concat(http.response.headers[x-bz-content-sha1][0], http.response.headers[x-bz-info-src_last_modified_millis][0], http.response.headers[x-bz-file-id][0])

这样设置完之后,你再回去看图片的响应头,x-bz 开头的那些全没了,而且有了 ETag 值。

干净利落。

设置缓存规则

Cloudflare 那边加一条页面规则,URL 填你解析的那个域名加上 /*,缓存级别选「缓存所有」,边缘缓存 TTL 设一个月。

Backblaze 那边也要设一下。进桶的设定,在桶信息里加一行:

{"cache-control":"max-age=720000"}

这个时间你按需改,单位是秒。720000 秒大概是 8 天多,够用了。

设置缓存规则

现在再去访问你的图片,响应头里会看到:

cache-control: max-age=720000
cf-cache-status: HIT

看到 HIT 了没?说明缓存生效了。

不用每次都从 Backblaze 拉资源,CDN 直接喂给你,速度快,还省 Backblaze 的免费额度。

说到这个,Backblaze 每天虽然有免费额度,但说实话不算特别多。10GB 的存储和每天 1GB 的下载流量,如果你只是放博客图片那完全够,但要是放视频或者大文件,还是建议好好利用 Cloudflare 的缓存,别开着源站直连使劲造。

配合PicGo客户端

客户端可视化工具就看自己选用了,比如还有 ipic 等。这里主要介绍 PicGo。

去 GitHub 上搜 PicGo,找到 releases 页面下载对应版本就行。

装完之后需要装一个 S3 插件,因为 Backblaze B2 兼容 S3 的 API。

安装S3插件

然后去 Backblaze 那边创建一个 Application Key,就在 App Keys 那个页面,点 Add Application Key,权限选读写就行。

创建应用密钥

添加应用密钥

拿到 Key ID 和 Application Key 之后,回 PicGo 的 S3 插件里填上。

这里有个坑要注意。

网上很多教程填的 endpoint 是 s3.us-west-xxx.backblazeb2.com 这种格式,但如果你跟我一样用的自定义域名绑了 Cloudflare,那就得填你的自定义域名。节点那里填 https:// oss.xxx. com,然后桶名填你刚才创建的桶名。

配置S3插件

自定义节点

配完之后保存,试传一张看看。

能传上去,能通过自定义域名访问,那就对了。

查看使用量

如果你想查看 Backblaze B2 的使用量,在 Backblaze 后台的 My Account 页面就能看到,每天的存储量、下载量、B2 请求次数都列得清清楚楚,方便你随时监控有没有超标。

查看使用量

其实吧,这一整套搞下来,说难也不难,说简单吧也确实踩了几个坑。最烦的就是那些细节,漏一个就访问不了,或者加载慢,或者暴露信息。

我自己搞完之后最大的感受就是,这套方案真的很适合个人站长或者小博客用。成本低、速度快、配置好了之后基本不用管,一劳永逸。

而且用 Cloudflare 把 Backblaze 包一层之后,访问者看到的是你的自定义域名,响应头干干净净,还有 CDN 加速,体验完全不输那些收费图床。

说真的,在这个什么东西都按量收费的时代,能找到这样一套几乎免费的方案,还是挺爽的。

最后想说一句,如果你也在折腾图床,希望这篇能帮你省下那一下午的踩坑时间。

Nā te mea kua pānuihia e koe tēnei tuhinga tae noa mai ki tēnei wā, ki te mea he whai hua ki a koe, tēnā koa, paihia, tohaina mai hoki. Ki te hiahia koe ki te whiwhi whakahōutanga i te tuatahi, ka taea hoki e koe te whai i ahau! ⭐

Ngā mihi nui ki a koe mō te pānui i taku tuhinga. Kia kite anō tātou i te wā e whai ake nei.

发表 评论

Ka kore e whakaputaina to wahitau imeera. 必填 项 已 用 * Tapanga

Tuhinga Tuhinga
Panuku ki te Runga