最近身边突然有人开始用起Backblaze(后文简写为B2)了,有人问我相关问题,所以就写了这篇文章。
正文开始
B2大致介绍
B2 是一个云存储提供商,类似于 AWS S3,但是 B2 的价格便宜,还可以搭配 CloudFlare(后文简写为CF)进行免流,所以有了今天这篇文章。
免费额度
- B2 存储
B2 的每个用户都拥有 10GB 的免费空间
- B2 Download 流量
B2 每日会赠送用户 1GB 的外网下行流量。
- B2 API 请求
B类请求(与下载有关):每日赠送用户 2500 次
C类请求:每日赠送用户 2500 次
CF 大致介绍
CF 是一个全球网络,旨在让您连接到互联网的一切都安全、私密、快速和可靠。
创建 B2 存储桶
在注册完 B2 帐号之后,我们需要在 B2 Cloud Storage 创建一个存储桶,来储存你的数据。
这里我们只需要进去后台,点击 Buckets
后再点击 Create a Bucket
,存储桶的名字是唯一的,所以要想一个特殊的名字。
桶的类型要设置为 Public
公开的,要让访客看到我们上传的照片。
绑定CF
注册完桶之后,我们就可以对接 CF 了。
首先需要在 CF 绑定一个域名,这一步我就不写了。
- 首先我们需要去 B2 上传一个文件。
我们点击Upload/Download
进入到 B2 存储桶的文件管理界面。再点击Upload
上传一个文件即可。
之后点击文件,获取获取你的存储桶位于哪台服务器上,为后续 CF 回源做准备。
可以看出,我们的存储桶位于f002.backblazeb2.com
这个域名,这个信息记住,之后要配合 CF 使用。
- 去 CF 解析域名
我们可以前往 CF 将绑定好的域名解析一个二级出来。名称无所谓,类型选择 CNAME
,目标就填写我们上边获取到的 f002.backblazeb2.com,记得将小黄云打开。
打开小黄云就是代表,我们的请求走 CF 的 CDN 通过,TTL 设置为 aoto(自动) 已经完全够用。
- 设置 CF 缓存
缓存是至关重要的,因为 B2 每天的B类请求只有 2500 次免费额度,我们需要设置缓存,来减少请求次数。
我们点击 CF 管理面板中的 Caching
下的 Cache Rules
,再点击 Create Rule
创建缓存规则。
Rule name 可以随意设置,Field 这里选择 URL Full,Operator 选择 contains,Value 就输入你解析的二级域名。
这里的 Edge TTL 和 Browser TTL 分别是缓存时间和浏览器缓存时间,大家看自己需求设置即可。
- 设置 B2 存储桶缓存
设置完 CF 的缓存之后,我们还需要去 B2 给存储桶设置一下。
这里我们点击 Buckets
回到桶管理界面,再点击 Bucket Settings
之后,在 Bucket Info
处输入
{"cache-control":"max-age=31536000"}
//这里的31536000 要看自己的 Edge TTL 设置的时间,换算成秒即可。
设置完之后,点击 Update Bucket
即可。
隐藏桶信息
这里我们需要使用到 CF Rules 下的 Transform Rules。
进入到相关页面后,点击 Create Transform Rules
选择 Rewrite URl。Rule name 随意,Field 等信息按照 设置 CF 缓存 这一步填写即可。
下面的 Path 选择 Rewrite to,将方式切换到 Dynamic 填写
concat("/file/你的Bucket Name", http.request.uri.path)
隐藏相关标头
这里一样是使用 CF Rules 下的 Transform Rules,但是这里我们要选择 Modify Response Header。
和上面一样,Rule name 随意,Field 等信息按照 设置 CF 缓存 这一步填写即可。
剩下的看图设置即可。
要删除的标头如下:
- x-bz-content-sha1
- x-bz-file-id
- x-bz-file-name
- x-bz-info-src_last_modified_millis
- x-bz-upload-timestamp
- x-content-type-options
图片测试(图片存于B2)
正文结束
这篇文章讲述了如何白嫖 CF + B2 存储静态文件,这篇文章已经讲的非常详细了。
Comments 1 条评论
繁星 哦