零成本搭建无限流量文件分发系统:B2 + Cloudflare Workers
今天给大家分享一个利用Cloudflare带宽联盟和Backblaze B2搭建完全免费文件分发系统的终极方案!
🌟 核心优势
- 100%免费下行流量:通过Cloudflare Workers代理B2私有存储桶,享受Cloudflare带宽联盟的免费流量福利
- 绕过信用卡限制:无需绑定信用卡即可创建公开可访问的文件链接
- 企业级可靠性:Backblaze B2 + Cloudflare全球CDN的黄金组合
- 灵活权限控制:可自由切换公开/私有访问模式
🔧 准备工作
1. Backblaze B2配置
- 注册Backblaze账号(无需信用卡)
- 创建私有存储桶(记住存储桶名称和区域)
生成应用密钥:
- 进入"App Keys"页面
- 点击"Add a New Application Key"
- 记录下
keyID
和applicationKey
2. 获取B2端点URL
根据你的存储桶区域选择对应端点:
https://s3.[region].backblazeb2.com
常见区域:
- us-west: s3.us-west-001.backblazeb2.com
- us-east: s3.us-east-005.backblazeb2.com
- eu-central: s3.eu-central-003.backblazeb2.com
🚀 Worker部署步骤
1. 创建Cloudflare Worker
- 登录Cloudflare Dashboard
- 进入"Workers & Pages"
- 点击"Create application" → "Create Worker"
2. 配置Worker代码
将以下代码粘贴到Worker编辑器中,替换相应配置:
const CONFIG = {
buckets: {
// 主存储桶配置
"your-bucket-name": {
endpoint: "https://s3.region.backblazeb2.com", // 替换为你的B2端点
accessKey: "YOUR_ACCESS_KEY", // 替换为keyID
secretKey: "YOUR_SECRET_KEY", // 替换为applicationKey
isPublic: true // true=公开模式,false=私有模式
},
// 可选:添加额外存储桶
"another-bucket": {
endpoint: "https://s3.other-region.backblazeb2.com",
accessKey: "OTHER_ACCESS_KEY",
secretKey: "OTHER_SECRET_KEY",
isPublic: false
}
}
};
3. 部署Worker
- 点击"Save and Deploy"
- 记下你的Worker域名(格式:
your-worker.your-account.workers.dev
)
💡 使用技巧
文件访问URL格式
https://your-worker.your-account.workers.dev/bucket-name/path/to/file
示例:
https://b2-proxy.john.workers.dev/mjj-bucket/images/logo.png
高级功能
- 多存储桶管理:在CONFIG中可配置多个存储桶
私有模式:设置
isPublic: false
后,访问需添加认证头:Authorization: Bearer YOUR_SECRET_KEY
- 自定义域名:在Worker设置中绑定自己的域名
⚠️ 注意事项
- 文件大小限制:Worker响应不能超过100MB
- 请求频率限制:免费版每日10万次请求
- 缓存策略:Cloudflare默认会缓存内容,可通过添加
Cache-Control
头控制 - 敏感数据:切勿将配置信息提交到公开仓库
🛠️ 故障排查
问题 | 解决方案 |
---|---|
403 Forbidden | 检查B2密钥是否正确,存储桶权限设置 |
404 Not Found | 确认文件路径正确,注意大小写敏感 |
522超时错误 | 检查B2端点URL是否正确,区域是否匹配 |
存储桶不可见 | 确保Worker配置中的存储桶名称与B2完全一致 |
这个方案完美结合了B2的低存储成本和Cloudflare的免费带宽,特别适合中小型网站的资源分发。MJJ们赶紧部署起来,享受真正的零成本文件托管体验吧!