之前用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/