Loading

cf+b2搭建图床

cf+b2搭建图床

说明

cloudflare+b2搭建图床算是比较经典的一种白嫖图床的方式了,另一种是github+jsdelivr,不过由于jsdelivr被墙了,导致我之前博客的图基本都挂了,急忙更换cdn。因此最近在鼓捣标题的方法,看了一圈大佬们的方法,核心操作都是b2上建一个公开的bucket,然后用cf反代+隐藏bucket名。我实在太菜了,第二步搞了一晚上..

这种方法的傻瓜式教学为参考链接

经过github一番搜索,找到了第二种更官方,个人认为更好的方法,简单总结为b2上建一个私有的bucket + app令牌 + 官方cf worker。

准备

  1. 一个b2私有bucket
  2. cf账号和域名
  3. 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

Untitled

按照提示打开链接,登录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,但实测会出现以下错误

Untitled

因此直接在wrangler.toml中添加

然后运行

部署

wrangler publish

如果碰到报错

Untitled

则装一下这个库

npm i aws4fetch

成功后输入如下

Untitled

不知道为啥提示502,但确实能跑

登录cf面板,可以看到新的worker,然后点进去会看到刚才填的信息

Untitled

测试

等一两分钟(马上打开会看到报错界面,需要等一下),打开worker,看到如下xml,实际就是bucket的目录结构

Untitled

之后打开b2私有库的一张图,如下

Untitled

将框中的部分改成worker的url,如https://b2.xxx.workers.dev/wallpaper.webp

打开后能正常显示即可

Untitled

其他

  1. 此worker还有其他的功能,比如列举目录,替换url之类的,可以看官方文档,本文不在深入探讨

  2. 管理b2可以直接用alist,对b2加密,仅限管理员增删改查

  3. 最后附上方法1和方法2对于私有库的访问结果

    Untitled

    Untitled

参考

Backblaze(B2)套CloudFlare可用于静态文件存储 (qq.com)

使用PicGo+CF(Cloudflare)+B2(Backblaze)作为博客图床 | 冬多鲁玛杂货铺 (ostdb.info)

b2 + cf worker官方文档

posted @ 2023-01-28 23:12  velor2012  阅读(484)  评论(1编辑  收藏  举报