赛博大善人CloudFlare有一个叫做CloudFlare R2的对象存储服务,它不会限速,出口流量也不进行任何收费,只会对存储容量收费。存储的话 10G 以内是免费的,对于我们博客的存储来说完全是足够了,不够的话再增加存储空间也很便宜。
正常自己搭建在线图床也是需要一个服务器的,当然可以使用claw.cloud的免费服务白嫖alist来上传,也可以用其他在线图床或者PicGo手动上传
我们这次使用CloudFlare ImgBed来作为在线图床
CloudFlare ImgBed部署
这是一个免费文件托管解决方案,具有上传、管理、读取、删除等全链路功能,覆盖文件全生命周期,支持鉴权、目录、图片审查、随机图等各项特性 具体文档可以前往CloudFlare-ImgBed进行查看
它支持以pages或者docker方式进行部署,也支持以下多种存储空间
| 渠道类型 | 优点 | 限制 |
|---|---|---|
| Telegram Bot | 完全免费、无限容量 | 大于20MB文件需分片存储 |
| Cloudflare R2 | 无文件大小限制、企业级性能 | 超出10G免费额度后收费,需要绑定支付方式 |
| S3 兼容存储 | 选择多样、价格灵活 | 根据服务商定价 |
Telegram Bot免费且无限量。Cloudflare R2有10G额度,但出口带宽无上限。
所以我们这次两个存储方式都会讲,并且同时带上cloudflare pages以及edgeone pages的两种部署方式
Cloudflare + R2
前期准备
- 一个CloudFlare的账号
- 托管到CloudFlare的域名
- 一个github的账号用于fork项目源码
fork 项目源码


创建R2 存储桶
首先创建一个存储桶


创建KV存储
imgbed还需要使用kv存储来存放设置等信息,可以把kv理解为是一个小型数据库
点击按钮输入名称创建完毕后就不用管了,可以继续创建项目

部署项目
通过连接github账号选择对应的代码库来创建创建一个Pages项目


授权github账号后选中之前fork的仓库


项目名称随意,构建命令 npm install,其它默认即可

部署完成后显示的链接国内无法访问,问题不大,后面会配置自己的域名

进入设置绑定之前创建好的R2与KV,两个存储资源的变量名称需分别为img_url与img_r2,不然项目无法识别




重新部署一遍以启用刚刚绑定的资源

这时候用默认分配的域名就可以访问到网站了,但是国内无法正常访问,我们需要用自己的域名

输入自己的域名,如果是cf托管的会自动帮你设置dns,与r2存储的域名不能是一样的

部署完就可以正常通过刚刚的域名访问了,设置什么的也可以通过kv正常保存,并且能正常使用了。建议设置一个上传密码,避免所有人都可以拿你的图床进行上传,这样10G空间都不够用的。


EdgeOne + TG Bot
前期准备
- github账号一个 (用于fork仓库)
- edgeone免费或付费套餐,还没有的可以通过Speed Test to Grab More EdgeOneFree Plans 测个速白嫖两份套餐
- edgeone pages kv存储名额
- telegram账号一个
创建TG Bot
搜索@BotFather机器人,点击下方这个Open可以打开可视化界面


根据指引创建机器人

保存好机器人的token,点击copy复制

创建一个新频道,把刚刚创建的机器人拉进群并设置为管理员,同时将群转为私有



随便发一条消息并将其转发给@VersaToolsBot,记住这个聊天名称


部署项目
在服务总览的标签页中可以看到pages的选项卡,导入并创建项目,fork过程上面讲过了,故省略。构建命令还是为npm install



edgeone的kv存储还没申请到,所以这里无法展示,但流程和cf一致,绑定好kv后重新构建一下
然后也可以使用环境变量的方式设置用户名密码以及token与id
AUTH_CODE=上传页的鉴权密码BASIC_USER=管理员账号BASIC_PASS=管理员密码TG_Bot_Token=机器人的tokenTG_Chat_ID=频道ID
设置完成以后等待部署完成就可以通过域名访问了
总结
以上就是使用pages部署imgbot的方式了,edgeone的kv存储没有申请到还是很遗憾的,不过也可以使用代理cf的方式来对国内网络进行加速,不过值得注意的是这里的加速回源配置需要设置为使用源站域名,然后在cf对应pages的自定义域中添加加速域名就可以进行加速了。
