Backblaze + Cloudflare 搭建免费对象存储
0.预先提醒
任何免费的东西都有失效的一天,并且最好不要绑定任何支付卡,以免后续带来不必要的麻烦,并且Cloudflare只为了做缓存和免费流量使用,资源加载效果不如意,谨慎选择使用
1.环境准备
2.CF宽带联盟
- Cloudflare CDN(内容交付网络)与微软、谷歌、IBM Cloud等共同组建了带宽联盟,即由公司组成的一个联盟,旨在减少通过内容交付网络的数据费用。
- 实现
- 支持列表
3.由CloudFlare管理域名
- 在CloudFlare平台中添加站点
- 选择Free计划并且继续
- 在域名提供商处,修改域名的DNS服务器为Cloudflare的DNS服务器(例如我的域名是腾讯云)
- 等待一段时间后在CloudFlare检查名称服务器即可
4.backblaze创建桶
PS:右下角可以将语言设置为简体中文
- 新建桶,桶名字自定义,权限选择公共
- 点击桶设定,桶信息中填入{"cache-control":"max-age=720000"}设置最大缓存,并且点击更新桶
- 跨域CORS规则自行选择(我这里选择全开放跨域)
- 记录下Endpoint的地址
- 点击 "上载/下载" ,并且随便上传一个文件,并且点击该文件最右边的信息
- 记录下友好URL的地址
5.配置CloudFlare
- DNS中添加解析,如图配置
- SSL/TLS中配置端对端加密,两个完全任选一个
- 规则中新建页面规则,URL填写为DNS中添加的二级域名,并且按如下配置保存
- 等待一段时间后,便可以将友好URL中的地址替换为自己的二级域名然后访问了
6.重定向地址隐藏桶名
此时虽然已经可以通过自定义的域名访问上传的图片,但是“/file/桶名”暴露在公众视野当中,也就是说,不法分子可以通过将域名地址修改为友好URL域名地址,这样子就会导致访问Backblaze的数据不会经过CloudFlare从而直接访问Backblaze,最终导致有流量被盗刷的风险,所以此时在CloudFlare中添加URL重写规则进行隐藏
- 在规则中的转换规则中创建重写URL规则,字段选择主机名,运算符选择等于,值填入你自己定义的域名
格式例如img.xxxxxx.xxx
- 路径重写到选择Dynamic,并且填入值
concat("/file/你的桶名", http.request.uri.path)
- 保存
- 此时虽然桶名被隐藏了,但是网络请求中会出现Backblaze的专属字段,所以需要再创建一个修改响应头,将Backblaze的专属字段删除
- 其他配置和上面一样,则...添加删除四个标头
x-bz-content-sha1
x-bz-file-id
x-bz-file-name
x-bz-upload-timestamp
评论 (0)