Mobile wallpaper
976 字
5 分钟

Backblaze免费存储无银行卡外网无限流量访问教程

2025-10-14
浏览量 加载中...

免费10GB,流量无限

NOTE

Backblaze加入了CloudFlare的 带宽联盟( Bandwidth Alliance) Backblaze与CloudFlare之间的流量直接免费,也就是每天无限量下行流量,配上CloudFlare超长缓存,每天下载请求无限次免费
注意:如果是公网访问,1GB流量是免费的,如果前面套了 Cloudflare 的CDN,那基本是全免了

TIP

部分内容参考Linux Do 本文可能会省略一些过程

开始#

需要准备的内容#

  • 注册 Backblaze 账号

  • 注册 Cloudflare 账号,并且有一个托管在 Cloudflare 上的域名

前置内容#

  1. 在Cloudflare增加一个你准备用于访问存储桶的域名(开启小黄云也就是代理,CNAME向任意地址)
  2. Cloudflare 左侧栏点击规则->创建规则->URL 重写规则,名称随意,选择自定义筛选表达式,字段选择主机名,运算符选择等于,值输入在步骤1中添加的域名,路径选择重写到…,内容随意写,然后部署,然后再次编辑刚刚创建的URL 重写规则,随意修改一点内容,然后部署(这里的内容后续都会被CloudFlare Workers覆盖,因此可以随意填写)
  3. Cloudflare 转到账户概述->管理账号->审核日志->稍等几分钟日志出现->找到操作类型为update,资源为rulesets,参与者电子邮箱为你的账号邮箱,参与者上下文为dash,点击右侧详细信息,找到raw部分的uri部分,内容类似
/zones/3abcxxxxxxxxxxxxx9e79b/rulesets/741axxxxxxxxxxxx1b228c/rules/24abafxxxxxxxxxxxxxxxfd63e7

zones后的3abcxxxxxxxxxxxxx9e79b就是区域ID,复制并保存,rulesets是规则集ID,复制并保存,rules是规则ID,复制并保存 4. Cloudflare 主界面右上角,进入配置文件(个人资料)->API令牌->创建令牌->创建自定义令牌->名称随意,添加两个权限账户 - 账户规则集 - 读取,区域 - 转换规则 - 编辑然后保存,妥善保存这个 CloudFlare API 令牌

存储桶#

  1. 打开 Backblaze ,创建存储桶(私有桶,公共桶要求一次性付款一美元或者有历史付款记录),保存存储桶名
  2. Application Keys->Add a New Application Key->名称随意,Allow access to Bucket选择步骤1中创建的存储桶(all也可以,如果你就这一个存储桶的话),然后点击下方按钮创建密钥,妥善保存keyID和applicationKey

Workers#

  1. 打开Cloudflare,进入Workers 和 pages->创建应用程序->从 Hello World! 开始->名称随意,自己认识/知道是干什么的即可,点击部署->点击设置,找到变量和机密,点击添加
变量名
B2KeyIDBackblaze 的 keyID
B2AppKeyBackblaze 的 applicationKey
B2BucketNameBackblaze 的存储桶名
CfAuthKey上面创建的 CloudFlare API 令牌
CfHostnameCloudFlare CNAME好的域名
CfZoneID区域 ID
CfRulesetID规则集 ID
CfRuleID规则 ID

添加完成后选择保存版本(如果手快选择了部署也无所谓),右上角编辑代码,复制下方代码,然后部署

addEventListener("fetch", (event) => {
event.respondWith(handleRequest(event.request));
});
addEventListener("scheduled", (event) => {
event.waitUntil(updateRule());
});
const getB2Token = async () => {
const res = await fetch(
"https://api.backblazeb2.com/b2api/v2/b2_authorize_account",
{
headers: {
Authorization: "Basic " + btoa(B2KeyID + ":" + B2AppKey),
},
}
);
const data = await res.json();
return data.authorizationToken;
};
const updateRule = async () => {
const b2Token = await getB2Token();
const res = await fetch(
`https://api.cloudflare.com/client/v4/zones/${CfZoneID}/rulesets/${CfRulesetID}/rules/${CfRuleID}`,
{
method: "PATCH",
headers: {
"Authorization": `Bearer ${CfAuthKey}`
},
body:
`{
"description": "修改Backblaze桶地址和访问令牌",
"action": "rewrite",
"expression": "(http.host eq \\\"${CfHostname}\\\" and not starts_with(http.request.uri.path, \\\"/file/${B2BucketName}\\\"))",
"action_parameters": {
"uri": {
"path": {
"expression": "concat(\\\"/file/${B2BucketName}\\\", http.request.uri.path)"
},
"query": {
"value": "Authorization=${b2Token}"
}
}
}
}`,
}
);
const data = await res.text();
console.log(data);
return data;
};
async function handleRequest(request) {
const data = await updateRule();
return new Response(data);
}

如果代码错误,请访问:

https://gist.github.com/longsays/0527603c1d6b883b73e7249e053b83da

部署完成后访问,看到如下界面则代表成功

最后,进入设置->触发事件->Cron 触发器->Cron 表达式->输入0 4,16 * * *

BackBlaze的文档说一个 Token 的有效期最大不超过 24 小时,我为了保险起见,选择每天两次触发这个 Worker 来生成一个新的 Token

赞助支持

如果这篇文章对你有帮助,欢迎赞助支持!

赞助
Backblaze免费存储无银行卡外网无限流量访问教程
https://blog.cmtyx.top/posts/backblaze-free-stored/
作者
璨梦踏月
发布于
2025-10-14
许可协议
CC BY-NC-SA 4.0
最后更新于 2025-10-14,距今已过 33 天

部分内容可能已过时

评论区

目录