B2(Backblaze)是一个存储桶提供商, 他为用户提供10G的免费存储空间, 但是由于公共存储桶需要信用卡验证, 所以本文教大家如何通过B2私有桶+CF Pages+PicGO或使用CloudFlare-ImgBed项目, 实现免信用卡使用B2存储桶搭建私人图床

准备工作

一个邮箱(用于注册Backblaze), 一个Cloudflare账户, 一个域名(要求可以CNAME解析)

注册Backblaze

打开官网 https://www.backblaze.com ,点击Get Started->Try for Free

接着输入邮箱, 点击Get Started Free

1

接着进入邮箱, 验证邮箱, 验证完成后, 填入密码并选择地区, 任意一个即可

2

点击Create Account, 接着输入账号密码登陆

创建私有桶和密钥

点击创建一个桶, 输入桶的名字, 其他默认, 点击创建

3

将桶的名字和Endpoint复制下来, 等会要用

4

接着进入Application Keys, 点击Add a NewApplication Keys创建密钥

5

名字随便, 其他默认点击创建, 复制KeyIDapplicationKey(一定要保存好, 不要丢失或泄露)

6

创建CF Pages

点击链接下载压缩包b2.zip

登陆Cloudflare, 选择Workers和Pages, 点击创建

7

选择Pages, 选择直接上传, 输入项目名字后将 b2.zip 上传

8

点击部署站点

接着点击设置->添加变量

9

类型选择纯文本

变量名
ALLOW_LIST_BUCKETflase
BUCKET_NAME你的存储桶的名字
B2_ENDPOINT你的地区的endpoint如 s3.ca-east-006.backblazeb2.com
B2_APPLICATION_KEY_ID你复制的KeyID
B2_APPLICATION_KEY你复制的applicationKey

点击保存

在设置的横栏里左滑, 点击创建部署(狗石布局, 害得我一开始找了半天没找到)

10

再次将 b2.zip 上传, 点击部署即可

点击自定义域, 设置自定义域, 输入自己的自定义域名, 接着选择我的dns提供商, 然后到自己的域名解析处, 设置CNAME解析

如果是Cloudflare解析,必须关闭小黄云

11

下载PicGO的魔改版

桌面端: PicList

手机端: PicHoro

根据图示配置, 以手机为例

12

之后检查配置没有问题后, 设置为默认图床即可使用

创建CloudFlare-ImgBed

进入项目MarSeventh/CloudFlare-ImgBed, Fork项目

创建CF Pages, 选择导入现有git项目, 选择自己刚才fork的项目, 构建命令填写npm install, 点击保存并部署

13

创建KV, 名字随意

14

回到项目, 设置->绑定->添加->KV 命名空间->变量名称填写img_url,KV命名空间选择刚才创建好的KV数据库

设置->变量->添加

变量名
AUTH_CODEweb访问密码
BASIC_USER管理员用户名
BASIC_PASS管理员密码

然后部署->重试部署

15

接着跟上文一样自定义域名

访问 https://你的域名/systemConfig#upload 进行S3配置, 点击保存

16

访问https://你的域名/回到主页面, 点击右下角进行功能选择, 请自行探索(其实是懒得写了)

其他配置

回到Backblaze配置页面, 点击生命周期的设置(逆天机翻), 选择只保留了最后版本的文件,
接着点击Update Bucket

17

点击桶设定, 在桶信息中填写

1
{"Cache-Control": "public, max-age=31536000"}

31536000表示缓存1年, 可以修改该数字以修改缓存日期

点击更新桶

18

总结

利用CF Pages访问B2私有桶, 用户再访问CF Pages来进行访问, 并且Cloudflare和B2都加入了宽带联盟, 所以Cloudflare通往B2的流量是免费的, 而且CF Pages是不限制访问次数的, 所以该图床可以不限次数的访问(请不要滥用)

示例
示例

参考资料: