cf+b2搭建图床
cf+b2搭建图床
说明
cloudflare+b2搭建图床算是比较经典的一种白嫖图床的方式了,另一种是github+jsdelivr,不过由于jsdelivr被墙了,导致我之前博客的图基本都挂了,急忙更换cdn。因此最近在鼓捣标题的方法,看了一圈大佬们的方法,核心操作都是b2上建一个公开的bucket,然后用cf反代+隐藏bucket名。我实在太菜了,第二步搞了一晚上..
这种方法的傻瓜式教学为参考链接
经过github一番搜索,找到了第二种更官方,个人认为更好的方法,简单总结为b2上建一个私有的bucket + app令牌 + 官方cf worker。
准备
- 一个b2私有bucket
- cf账号和域名
- nodejs+npm
配置wrangler
wrangler是cf官方的,用于在命令行配置worker等的工具,官方原话为
Wrangler is a command-line tool for building with Cloudflare developer products.
一开始我打算用ssh远程服务器登录wrangler,但新版wrangler改了token登陆的方式,按照新的方式一直登不上去,必须要打开本地浏览器,ssh哪来的浏览器..
因此只得在本地windows电脑上安装。首先安装nodejs和npm,此处略过
然后输入
npm i -g wrangler
登录cf
wrangler login
按照提示打开链接,登录cf
然后下载官方的仓库https://github.com/backblaze-b2-samples/cloudflare-b2
命令行进入对应的目录,修改wrangler.toml
#这里填worker名
name = "b2"
workers_dev = true
compatibility_date = "2022-11-18"
main = "index.js"
# Don't put your application key in this file!
# You should set it as a secret in the Cloudflare dashboard or at the command line:
# echo "<your b2 application key>" | wrangler secret put B2_APPLICATION_KEY
[vars]
B2_APPLICATION_KEY_ID = "申请的app keyID"
B2_ENDPOINT = "s3.us-west-000.backblazeb2.com"
# Set BUCKET_NAME to:
# "A Backblaze B2 bucket name" - direct all requests to the specified bucket
# "$path" - use the initial segment in the incoming URL path as the bucket name
# e.g. https://images.example.com/bucket-name/path/to/object.webp
# "$host" - use the initial subdomain in the hostname as the bucket name
# e.g. https://bucket-name.images.example.com/path/to/object.webp
BUCKET_NAME = "你的bucket名"
# Backblaze B2 buckets with public-read visibility do not allow anonymous clients
# to list the bucket’s objects. You can allow or deny this functionality in the
# Worker via ALLOW_LIST_BUCKET
ALLOW_LIST_BUCKET = "true"
#此处新增
B2_APPLICATION_KEY = "申请的app secret key"
注意官方建议在cf的网页面板添加B2_APPLICATION_KEY,但实测会出现以下错误
因此直接在wrangler.toml中添加
然后运行
部署
wrangler publish
如果碰到报错
则装一下这个库
npm i aws4fetch
成功后输入如下
不知道为啥提示502,但确实能跑
登录cf面板,可以看到新的worker,然后点进去会看到刚才填的信息
测试
等一两分钟(马上打开会看到报错界面,需要等一下),打开worker,看到如下xml,实际就是bucket的目录结构
之后打开b2私有库的一张图,如下
将框中的部分改成worker的url,如https://b2.xxx.workers.dev/wallpaper.webp
打开后能正常显示即可
其他
-
此worker还有其他的功能,比如列举目录,替换url之类的,可以看官方文档,本文不在深入探讨
-
管理b2可以直接用alist,对b2加密,仅限管理员增删改查
-
最后附上方法1和方法2对于私有库的访问结果
参考
Backblaze(B2)套CloudFlare可用于静态文件存储 (qq.com)
使用PicGo+CF(Cloudflare)+B2(Backblaze)作为博客图床 | 冬多鲁玛杂货铺 (ostdb.info)