之前用contabo对象存储的时候,就看过backblaze,当时为了节省流量费用,就选择了contabo。
不过吧,contabo也是走的cloudflare,但总觉得速度比自己接入的更慢,很离谱……
昨天就试了下backblaze,感觉还不错,就记录下,backblaze后台有中文也更方便。
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(代表是缓存成功了)

差不多就结束了,至于要不要设置防盗链,看你需要了。
有需要的可以看:https://www.jingxialai.com/4118.html
backblaze对接Wordpress可以用的插件很多,我用的Media Cloud(免费版)
参考资料:https://www.backblaze.com/blog/free-image-hosting-with-cloudflare-transform-rules-and-backblaze-b2/