backblaze 免费 10G 存储空间,接入 cloudflare 之后还免下载流量。
1、在 backblaze 新建一个存储桶。
然后在里面随便上传一个文件,打开看看里面的友好 URL 地址。
2、在 cloudflare 去解析 CNAME 域名
目标就是 backblaze 存储桶提供的友好 URL 地址,比如我的:f005.backblazeb2.com
特别注意:如果你 cloudflare 的域名走了合作伙伴托管区域,比如接入了梦牛等这种第三方平台,同时还是 CNAME 接入方式,也就是无法在 cloudflare 后台直接添加解析的,那就无法正常使用,比如 ssl、规则都不行。
应该有方法解决吧,只不过我在官网没搜索到,有知道的小伙伴可以告知。
3、设置 cloudflare 域名的 ssl
官方建议设置为:完全 (严格),但是我习惯了:完全。
也可以在规则里面单独设置。
4、在 cloudflare 设置域名的规则
规则 1:重写 URL 路径,也就是隐藏 backblaze 存储桶的名称
规则 – 转换规则 – 新增重写 URL 规则:
因为是用的二级域名,所以选:自定义筛选表达式,当主机名、URL 等于或者包含你解析的域名都行。
然后重写规则:选择 Dynamic 动态
concat("/file/jingxialai",http.request.uri.path)
#/file/ 是 backblaze 固定的文件夹名称
#jingxialai 换成你自己的存储桶名称
#之后保存
规则 2: 从响应中删除 HTTP 标头
规则 – 转换规则 – 新增修改响应头规则
增加删除规则,标头名称:
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 现在好像是没有的,但是官网教程里面有,所以我也加上了。
其他和之前的重写 URL 设置一样就行,然后保存。
规则 3: 通过 ETag 和缓存控制 HTTP 标头优化缓存效率
规则 – 转换规则 – 响应头规则
就在刚才的 HTTP 响应头修改规则里面新增一条就行:
设置动态 – 标头名称填写:ETag
值添加:
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])
现在我们再去看看我们上传到 backblaze 里面的图片响应头信息:
没有了 x-bz 开头名称并且有了 etag 值。
5、设置 backblaze 存储桶和 cloudflare 域名的缓存规则
按需设置就行。
cloudflare 规则 – 新增一个页面规则
URL:解析的域名 /*
缓存级别:缓存所有
边缘缓存 TTL:我设置的 1 个月
backblaze 存储桶设置缓存时间
桶设定 – 桶信息:720000 这个时间可以自己修改,以秒为单位。
{"cache-control":"max-age=720000"}
现在我们去访问上传到 backblaze 里面的文件,看响应头信息:
cache-control: max-age=720000
cf-cache-status: HIT(代表是缓存成功了)
差不多就结束了,至于要不要设置防盗链,看你需要了。