私有桶链接实现公开化,并通过 Cloudflare 代理 100% 省去流量。
pnpm install
cp wrangler.toml.template wrangler.toml
wrangler.toml 文件,配置以下参数
name = "cloudflare-b2"
workers_dev = true
compatibility_date = "2023-09-04"
main = "index.js"
[vars]
B2_APPLICATION_KEY_ID = "<your b2 application key id>"
B2_ENDPOINT = "<your endpoint - e.g. s3.us-west-001.backblazeb2.com >"
BUCKET_NAME = "<your bucket name, $path, or $host>"
ALLOW_LIST_BUCKET = "<true or false>"
RCLONE_DOWNLOAD = "<true or false>"
cp .dev.vars.template .dev.vars
.dev.vars 文件,添加 B2 密钥:
B2_APPLICATION_KEY = "<your b2 application key>"
cp .dev.vars.template .dev.vars,并填入密钥wrangler build && wrangler deploy
在存储桶的元数据里添加缓存控制头,允许公共缓存 24 小时,减少回源压力:
{"cache-control":"public, max-age=86400"}
完成后,桶的响应会提示缓存系统在 24 小时内直接使用缓存版本,无需重复询问源站。
B2_APPLICATION_KEY 直接存储在配置文件中,应使用 wrangler secret put 命令设置由于 Cloudflare 和 Backblaze 都属于 Bandwidth Alliance(带宽联盟),因此从 Cloudflare 回源到 Backblaze B2(即“入口流量”)也是完全免费的。
简单来说,这套方案的免费流量模式是: