无需信用卡使用B2+CF Pages创建私有图床
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
接着进入邮箱, 验证邮箱, 验证完成后, 填入密码并选择地区, 任意一个即可
点击Create Account
, 接着输入账号密码登陆
创建私有桶和密钥
点击创建一个桶, 输入桶的名字, 其他默认, 点击创建
将桶的名字和Endpoint
复制下来, 等会要用
接着进入Application Keys
, 点击Add a NewApplication Keys
创建密钥
名字随便, 其他默认点击创建, 复制KeyID
和applicationKey
(一定要保存好, 不要丢失或泄露)
创建CF Pages
点击链接下载压缩包b2.zip
登陆Cloudflare, 选择Workers和Pages
, 点击创建
选择Pages
, 选择直接上传
, 输入项目名字后将 b2.zip 上传
点击部署站点
接着点击设置
->添加变量
类型选择纯文本
变量名 | 值 |
---|---|
ALLOW_LIST_BUCKET | flase |
BUCKET_NAME | 你的存储桶的名字 |
B2_ENDPOINT | 你的地区的endpoint如 s3.ca-east-006.backblazeb2.com |
B2_APPLICATION_KEY_ID | 你复制的KeyID |
B2_APPLICATION_KEY | 你复制的applicationKey |
点击保存
在设置的横栏里左滑, 点击创建部署
(狗石布局, 害得我一开始找了半天没找到)
再次将 b2.zip 上传, 点击部署即可
点击自定义域
, 设置自定义域
, 输入自己的自定义域名, 接着选择我的dns提供商
, 然后到自己的域名解析处, 设置CNAME解析
如果是Cloudflare解析,必须关闭小黄云
下载PicGO的魔改版
桌面端: PicList
手机端: PicHoro
根据图示配置, 以手机为例
之后检查配置没有问题后, 设置为默认图床即可使用
创建CloudFlare-ImgBed
进入项目MarSeventh/CloudFlare-ImgBed, Fork项目
创建CF Pages, 选择导入现有git项目
, 选择自己刚才fork的项目, 构建命令填写npm install
, 点击保存并部署
创建KV, 名字随意
回到项目, 设置
->绑定
->添加
->KV 命名空间
->变量名称填写img_url
,KV命名空间选择刚才创建好的KV数据库
设置
->变量
->添加
变量名 | 值 |
---|---|
AUTH_CODE | web访问密码 |
BASIC_USER | 管理员用户名 |
BASIC_PASS | 管理员密码 |
然后部署
->重试部署
接着跟上文一样自定义域名
访问 https://你的域名/systemConfig#upload
进行S3配置, 点击保存
访问https://你的域名/
回到主页面, 点击右下角进行功能选择, 请自行探索(其实是懒得写了)
其他配置
回到Backblaze配置页面, 点击生命周期的设置
(逆天机翻), 选择只保留了最后版本的文件
,
接着点击Update Bucket
点击桶设定
, 在桶信息中填写
1 | {"Cache-Control": "public, max-age=31536000"} |
31536000
表示缓存1年, 可以修改该数字以修改缓存日期
点击更新桶
总结
利用CF Pages
访问B2私有桶
, 用户再访问CF Pages
来进行访问, 并且Cloudflare和B2都加入了宽带联盟
, 所以Cloudflare通往B2的流量是免费的, 而且CF Pages是不限制访问次数的, 所以该图床可以不限次数的访问(请不要滥用)
示例
参考资料: