之前介绍了一个利用 Vercel 和 Telegram 搭建博客,今天用 Cloudflare Pages 和 Telegram 搭建一个图床
与 https://github.com/cf-pages/Telegraph-Image 的数据库兼容,可以绑定同一个 KV
准备工具
- GitHub 帐号
- Cloudflare 帐号
- Telegram 帐号
- 自行准备可以访问 Telegram 的环境
搭建过程
GitHub
Fork 上方的仓库( 点这里 fork )默认名称即可
Cloudflare
接着访问 Cloudflare 控制台(没帐号自行使用邮箱注册)
左侧菜单栏选 “Workers 和 Pages”
创建
进入之后点 “Pages” – “连接到 Git”
没有绑定 GitHub 帐号会要求绑定后继续,我已经绑定过了就不演示了
选择存储库
啥都不要动,直接 “保存并部署”
部署完成后会提示这个,划到下面点击 “继续处理项目”
然后点击左侧 “Workers 和 Pages” – KV
创建命名空间,取个自己记得住的名称就行
返回到 Workers 的设置页面
划到下面绑定
选择 “KV 命名空间”
变量名称必须填写 img_url ,KV 命名空间选择之前创建的就行
Telegram 频道 ID 的获取和绑定
创建频道
选择为公开
获取频道 ID
在频道里随便发一个消息,然后通过转发发给 @userinfobot,获取 ID,会自动回复(需要先发送 /start 指令)
这串 ID 就是频道 ID(连带横杠复制备用,后面有用处)
获取机器人 ID
前往 @BotFather 获取一个
对话框输入 /newbot
它会让你先输入一个名称,不一定要字母数字
发送之后他会让你设置机器人 ID,只能有字母、数字和下划线,且结尾必须有 “bot”
这里就是 Token,复制下来备用
将机器人添加至频道
添加到之前创建的频道
将机器人设置为管理员
进入频道设置
点击这个带五角星的盾牌
添加
点击机器人,然后全选
添加变量
基础信息添加
打开对应的 Pages 项目的设置
划到下面添加变量
变量名称一览
- BASIC_PASS 管理员密码(最好填写)
- BASIC_USER 管理员名称(最好填写)
- TG_BOT_TOKEN 之前创建的机器人 token(必填)
- TG_CHAT_ID 之前获取的频道 ID(必填)
- AUTH_CODE 认证码,需要输入之后才可以进行上传(非必填)
- USER_CONFIG 自定义配置信息,后面讲
- ALLOWED_DOMAINS 防盗链设置,只有添加的域名才允许引用,使用半角逗号分隔(非必填)
- WhiteList_Mode 白名单,值为 true 时,只有通过白名单才可以引用(非必填)
- AllowRandom 随机输出图片,值为 true 时,访问 /random 路径可以随机输出一张图片(非必填)
自定义信息
示例
轮播模式:{
"uploadBkImg": ["https://imgbed.sanyue.site/file/6910f0b5e65ed462c1362.jpg","https://imgbed.sanyue.site/file/a73c97a1e8149114dc750.jpg"],
"loginBkImg":["https://imgbed.sanyue.site/file/ef803977f35a4ef4c03c2.jpg","https://imgbed.sanyue.site/file/0dbd5add3605a0b2e8994.jpg"],
"ownerName": "Sanyue",
"logoUrl": "https://demo-cloudflare-imgbed.pages.dev/random?type=img"
}
bing随机图模式:
{
"uploadBkImg": "bing",
"loginBkImg": "bing"
}
字段名 | 用途 | 类型 | 内容规范 |
loginBkImg | 自定义登录页面背景 | 列表/字符串 | 1、当字段类型为列表时,列表中元素为需要添加到轮播列表中的图片链接(列表中只有一张图时即为固定背景),形如[“1.jpg”,”2.jpg”]2、当字段类型为字符串时,目前仅支持字符串值为 bing,设置为该值时启用 bing 随机图片轮播模式。 |
uploadBkImg | 自定义上传页面背景 | 列表/字符串 | 同上 |
bkInterval | 轮播背景切换时间间隔 | 正整数 | 设置为背景图的轮播时间,默认3000,单位ms。例如你希望10s切换一次,设置为10000即可。 |
bkOpacity | 背景图透明度 | (0,1]的浮点数 | 展示的背景图透明度,默认为1。如果你觉得显示效果不佳,可以自定义,如0.8 |
ownerName | 页内图床名称 | 字符串 | 只支持字符串类型,设置为你自定义的图床名称(默认为Sanyue) |
logoUrl | 页内图床 Logo | 字符串 | 只支持字符串类型,设置为你自定义的图床 Logo 链接 |
siteTitle | 页面标题 | 字符串 | 只支持字符串类型,设置为你自定义的网站标题 |
siteIcon | 图标 | 字符串 | 只支持字符串类型,设置为你自定义的网站图标链接 |
footerLink | 页脚传送门链接 | 字符串 | 只支持字符串类型,设置为你自定义的传送地址(如个人博客链接) |
使变量生效
变量添加完成之后进入 worker 的详细页面
“部署” – “所有部署” – 三个点 – “重试部署” 可以使变量生效
更新方法
返回自己的 GitHub 主页,进入存储库
点击 “Sync fork” 更新
自定义域名
Workers 页面点击 “自定义域”
如果域名托管在 Cloudflare,会自动添加
如果不在 Cloudflare,可以 CNAME 到 cf-cname.xingpingcn.top 加快访问速度,但可能不会传送真实 IP 地址
展示结果(部分)
前台上传界面
后台管理界面(部分图片已打码处理)
上传者管理界面
结束
如果觉得项目不错希望能给开源的作者一个免费的star🌟🌟