Cloudflare Backblaze (b2) 云存储 静态文件托管配置¶
随着前后端分离越来越流行,现在有越来越多的厂商提供静态文件托管服务(例如: netlify 2)。
直接使用静态文件托管服务的费用比较高 6 ,我们完全可以使用 Backblaze 云存储 和 Cloudflare CDN 来搭建自己的静态文件托管服务。
Backblaze 0 云存储的价格(存储价格 & 流量价格) 5 在各大云存储厂商中应该算是非常便宜的了,而且国内的访问速度也不错。
备注
本地测试使用的是北京联通的网络(下载可以超过 80Mbps, 上传大约 30Mbps),其他地区的速度请自行测试。
Cloudflare 更是提供了不限流量(CDN)的免费版本给用户使用。
由于 Backblaze 与 Cloudflare 1 合作 4 ,当使用 Cloudflare 代理 Backblaze 云存储时,Backblaze 不会计算传输到 Cloudflare 的流量费用。
Backblaze 官方有一篇文章介绍了怎么样使用 Cloudflare 代理 Backblaze 的静态文件 3
但是这篇文章介绍的方案中有一个缺点:
访问文件时候需要添加前缀
/file/your-bucket-name
到请求路径中。
备注
如果您的文件 index.html
在 demo
Bucket 中,
您需要通过: https://your-domain/file/demo/index.html
访问 index.html
文件,
而无法通过: https://your-domain/index.html
直接访问。
下面介绍的方法可以避免此问题。
配置 Backblaze 云存储¶
创建 Backblaze 账号 并 登陆
创建一个公开的 Bucket
备注
您也可以创建一个私有的 Bucket, 但是需要您手动添加 ACL 授予 Cloudflare 服务器读取权限
点击 Upload 上传任意一个文件

查看上传文件的详情 (点击最后的 i)

文件详情结果

Friendly URL 中的 f0002.backblaze2.com
是 CNAME 需要指向的域名
备注
如果您是 Cloudflare 企业版用户, 可以直接使用 Cloudflare 代理 S3 URL 中的域名。
配置 Cloudflare CDN¶
如果您是 Cloudflare 企业版用户,请优先使用 Cloudflare 企业版配置(配置简单)
Cloudflare 企业版配置¶
DNS 新建一个 CNAME 配置
指向的域名参见: 获取域名

重写 Host 字段

您可以参见 重写 Host 字段 直接代理 S3 URL
警告
如果您没有正确重写 Host
则有可能无法正常访问文件。
Cloudflare 其他版本配置¶
DNS 新建一个 CNAME 配置
指向的域名参见: 获取域名

打开 标准化传入到源服务器的 URL

添加 重写 URL 转换规则

页面规则配置 [可选]¶
重定向 /
到 index
文件

备注
这条规则主要用户解决直接域名访问 (也就是直接访问: https://you-host-name/
) 返回错误的问题。
因为 Backblaze 仅允许访问文件,对于任何文件夹的访问都会失败。
参考资料¶
Updated on 22 十二月 2021
修改错别字