利用 Cloudflare+B2 零成本搭建无限流量文件存储桶
话说在前#
各位朋友都清楚,cloudflare搞了个带宽联盟,从backblaze B2通过 cf 传出的数据完全免费,不计入 B2 的带宽费用,这意味着,你可以将文件存储在 B2,然后通过cf分发,不产生任何下载流量费用
但是~B2公开存储要绑卡,私有却不用
🤓那我们可以通过Cloudflare Workers代理B2私有存储桶,利用宽带联盟的特性,享受Cloudflare带来的免费流量福利,妙哉妙哉
具体教程#
Backblaze#
-
先进入B2主页创建一个Backblaze账号,不用绑卡
-
来到Backblaze主页面,点击 创作一个桶 为什么简中要这么翻译我也不知道 ,类型选私密(官翻为私人),默认加密关闭,对象锁定也关了
-
然后创建一个应用密钥(App Key),并记下keyID和applicationKey
cloudflare workers#
在CONFIG中可配置多个存储桶
-
在仪表盘新建一个worker,选择
Continue with GitHub,连接刚fork的仓库,配置环境变量
桶名模式#
my-bucket- 固定桶名$path- 从 URL 路径获取,如https://worker.dev/my-bucket/file.txt$host- 从子域名获取,如https://my-bucket.worker.dev/file.txt
- (可选)绑定自定义域名,打开worker设置,域和路由,配置你的域名就好了
问题排查#
403 Forbidden检查B2密钥是否正确,存储桶权限设置404 Not Found确认文件路径正确,注意大小写敏感522超时错误检查B2端点URL是否正确,区域是否匹配存储桶不可见确保Worker配置中的存储桶名称与B2完全一致
NOTE
- Worker响应不能超过100MB
- 免费版每日10万次请求
- Cloudflare默认会缓存内容 可通过添加
Cache-Control头控制- 切勿将配置信息提交到公开仓库,切勿跑超大文件
写在最后#
那么B2的相关教程就写完了,这里要补充一些,B2免费10GB空间,若跑大文件高速率切记拿小号使,通过Cloudflare的CDN代理非CF的服务跑大流量,有概率会被Cloudflare限速或者直接ban掉,在TOS里这种属于滥用,封号不必我赘述了,ban域名可以通过使用特殊域名解决,例如ipv6反解域名毕竟cf也封不了😋
The end Ciallo~