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.htmldemo 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 仅允许访问文件,对于任何文件夹的访问都会失败。

参考资料

0

Backblaze 官方网站

1

Cloudflare 官方网站

2

Netlify 官网

3

配置 Cloudflare CDN 使用 B2 云存储文件

4

Cloudflare Backblaze 宽带联盟

5

Backblaze 价格

6

Netlify Price

Updated on 22 十二月 2021

修改错别字