一、前言
最近一直在找一个便宜好用的对象存储,存储量差不多在1.5T左右,出口流量差不多在5TB左右。国内厂商的对象存储,懂的都懂,价格确实稍微有点高,而且直接外网流量是真的贵,通过CDN回源流量也是便宜不了哪里去。综合考量了一下,确实国内没有合适的对象存储厂商。
然后就开始看国外的厂商,刚开始其实想托管在CloudFlare上的,就是用CloudFlare R2,但是确实,价格还是有点小贵,0.02美元/GB·月,折合0.14CNY/GB·月,优点就是通过CloudFlare的流量是全免的。
后来又看了Wasabi的对象存储,这家的对象存储就是6.9美元/月·TB,然后流量是存储多少免多少,意思就是你存了1TB数据,那么每月的免费流量就是1TB,刚开始确实都迁移了100GB数据上去了,但是后来真是被那超级慢的工单整崩溃了,原因是存储桶是默认禁用了公开访问的,然后你需要提工单去申请解封,然后你需要提供一些用量信息,如下图所示,就是你的CNAME地址(公开访问的CNAME,Wasabi要你必须通过CDN回源访问),然后就是你的用量包括每个月的存储用量、出口流量,你的业务是什么等等,然后进行评估(估计是要你走年缴那条路),然后才给开放公共访问权限。工单刚提问第一次回复很快,但是接下来就是你发一句,要很长时间才会回复(注意:我是在晚上和白天都回复过,我当时想与美国有时差,但是发现,无论是在他们上班的时间点,还是他们的晚上发消息,都要等至少12小时才会有回复)。
最后,切换到了Backblaze,价格是6美元/TB·月,然后流量是存储量x3,也就是如果你存储了1TB数据,你每个月就有3TB的出口流量。而且Backblaze与CloudFlare有宽带联盟,也就是通过CloudFlare的CDN访问Backblaze的存储桶是不需要流量的。而且只需要验证一下信用卡,就可以开启公共访问。免费额度是10GB。
二、准备
1.建议准备加速器,因为有Google验证
2.一张Visa卡,要有1美元,如果后续使用更多的存储,则需要预留费用。
三、注册
访问:The Leading Open Cloud Storage Platform - Backblaze
点击右上角的【Start Free】

选择【B2 Cloud Storage】当中的【Try for Free】

然后根据提示填入邮箱等

四、创建存储桶
登录控制台,选择【Buckets】-【创建一个桶】

然后桶的名称要唯一,注意:如果下方你选择存储桶的类型为【公开】,需要验证你的卡,并且会扣1美元。

其他选择项默认即可。
五、上传文件
上传文件可以直接通过网站上传,但是上传的大小不能超过500M,他们提供了官方的工具,但是没有图形化页面,所以建议使用S3兼容的图形化工具上传,我这里使用的是亚马逊AWS S3的工具S3 Browser
在此之前,你需要在控制台创建密钥,选择【Application Keys】-【Add Application Key】

然后设置个名称

注意:生成后一定要注意保存密钥,只会显示一次。

打开【S3 Browser】
然后默认会让你添加账户,其中【Display Name】你随意设置即可,只需要你能够认出来。
【Account type】选择S3 Compatible Storage
【API Endpoint】填入你控制台的节点信息

【Access Key ID】就是你获取到的KeyID,【Secret Access Key】就是上面的applicationKey
注意:最下面的USE Secret Transfer[TLS/SSL]需要勾选上,Backblaze默认只支持HTTPS访问。
然后你就可以访问对应的目录上传文件了。
六、CloudFlare加速
*注意:这里默认你的存储桶开启了公共访问权限。CloudFlare回源不会消耗出口流量。
登陆后选择你的域名,点击TLS/SSL,然后选中概述。
检查你的SSL/TLS 加密是否是完全或者完全(严格)状态,否则会导致回源失败!

然后你先上传一张图片(或者其他文件也可以)到你的存储桶里,然后在控制台的文件列表中,点开那张图片,记住上面的友好URL中的域名。

在CloudFlare中添加CNAME,指向这个域名,注意:一定要开启小黄云,我这里设置的docx.example.com指向该域名

然后,为了避免其他人盗用你的域名加速不属于你的存储桶,还需要设置URL重写规则。
在【规则】-【概述】-【创建规则】-【URL重写规则】中

在预设模板中,选择【重写对象存储桶的路径】-预览模板,然后根据下方的指示,设置:
匹配规则选择【自定义筛选表达式】
匹配字段选择【主机名】,运算符选择【等于】,值为你自己的域名,我这里是docx.example.com。

然后在【路径】中选择【重写到】
下方选择【Dynamic(动态)】,然后值按照下方设置
concat("/file/你的存储桶名称", http.request.uri.path)
点击部署,然后就OK了,就会默认访问到你的存储同里。
评论区