前言
本人写博客的时候,会将自己的图片上传到 BackblazeB2 中,但每次上传图片到 BackblazeB2 都需要打开浏览器并重新登陆,然后找到对应的 bucket,再上传,操作非常繁琐。我也不乐忠于在电脑中安装各种 CLI 以及客户端软件(因为我只是上传下图片并获取外链)。考虑到我的电脑一般开机都会打开 Telegram, Wechat, Discord, 所以在新年放假期间,写了一个 Telegram Bot 来简化我的图片上传流程。
项目介绍
img-mom | 图片老妈, Telegram 图片上传机器人,轻松上传图片到指定图床并获取外链地址。
特性
- 基于 Cloudflare Workers 运行时构建, 轻量使用完全免费
- 支持多种图床(目前只支持 Telegram/Cloudfalre R2/Backblaze B2 )
- 快速部署。使用 Wrangler 可快速实现自部署
使用方式
- 将图片通过私聊发送给 Bot, Bot 默认将只回复对应的 Telegram 图床链接
- 发送
/settings
指令,可以指定额外的图床,设置完成后,将图片通过私聊发送给 Bot, Bot 将回复你指定的额外图床链接 - 可使用 https://t.me/img_mom_bot,进行在线体验 (注意:为了防止恶意使用,体验 Bot 只会返回 Telegram 图床链接)
自部署
前置条件
- 该项目使用 NodeJS + TypeScript 开发,需要你的本地环境安装 NodeJS (推荐 NodeJS 20.11.0 以上版本)
- 该项目最终会部署并运行在 Cloudflare Workers 上,所以需要你拥有一个 Cloudflare 账户。具体可去 Cloudflare 官网注册
- 该项目是 Telegram 机器人的服务端,所以需要你创建一个 Telegram 机器人。具体如何创建见 Telegram 官方文档 https://core.telegram.org/bots/features#creating-a-new-bot
部署
克隆该项目
1
2[email protected]:beilunyang/img-mom.git
cd img-mom安装项目依赖
1
npm install
创建 wrangler 配置文件
1
cp wrangler.example.toml wrangler.toml
编辑新创建的 wrangler.toml 文件
当编辑完成后,运行
1
npm run deploy
等待项目编译完成并自动部署到 Cloudflare Workers
浏览器打开
https://<域名>/setup
, 完成必要的 Webhook 初始化
Wrangler.toml 待配置项说明
1 | # 你的 Cloudflare 账户ID |
提示:
- Backblaze B2 KeyId/SecretKey 可前往 https://secure.backblaze.com/app_keys.htm 获取
- Backblaze B2 Endpoint/Bucket 可前往 https://secure.backblaze.com/b2_buckets.htm 获取
结语
该项目代码已开源,Github 地址 https://github.com/beilunyang/img-mom ,欢迎各位 Fork, Star, Issue, PR. 最后也祝各位新年快乐🎉