type
Post
status
Published
date
Feb 16, 2026
slug
imgupbot2
summary
部署 Cloudflare Worker 方法:
方法一:通过 Cloudflare Dashboard 导入 GitHub 仓库 (推荐)
tags
cloudflare
category
部署教程
icon
password
网址
🛠️ 部署与配置步骤
- 创建 Telegram Bot:
- 在 Telegram 中与 @BotFather 对话。
- 发送
/newbot命令,按照提示设置机器人的名称和用户名。 - 记下 BotFather 返回的
HTTP API token,这就是您的BOT_TOKEN。
- 准备图床信息:
- 确定您的图床或对象存储服务的上传接口 URL。这将是
IMG_BED_URL的值,需要包含完整的上传路径(例如https://your.domain/upload)。 - 如果上传需要认证码,获取该认证码。这将是
AUTH_CODE的值。如果不需要认证,则此项为空。
- 创建 KV 命名空间(用于统计功能):
- 点击 "Workers & Pages" -> "KV" -> "创建命名空间"
- 输入名称,例如 "STATS_STORAGE"
- 创建后,记下命名空间 ID,稍后需要将其添加到配置中
- Fork本项目:
- Fork本仓库。
- 部署 Cloudflare Worker 方法:
- 点击计算(Workers)-->Workers 和 PAGES-->创建
- 选择Workers-->导入存储库--> 选择刚刚fork的仓库
- 在"构建设置"部分:
- 构建命令:留空
- 构建输出目录:留空
- 根目录:留空
- 在"环境变量"部分添加必要的变量(见下面的第6步)
- 点击"保存并部署"
- 部署完成后,记下您的 Worker URL(例如
https://img-up-bot-xxxx.pages.dev) - 安装 Wrangler CLI:
npm install -g wrangler - 登录 Cloudflare:
wrangler login - 克隆您 fork 的仓库:
git clone https://github.com/你的用户名/img-up-bot.git - 进入项目目录:
cd img-up-bot - 修改项目中的
wrangler.toml文件: - 设置您自己的 Worker 名称
- 更新 KV 命名空间配置,将之前创建的命名空间 ID 填入:
- 部署 Worker:
wrangler deploy - 登录 Cloudflare -> Workers & Pages -> 创建应用程序 -> 创建Worker
- 将
worker.js文件的内容复制到编辑器中 - 点击"部署"
- 记下部署成功后的 Worker URL(例如
https://your-worker-name.your-subdomain.workers.dev)
方法一:通过 Cloudflare Dashboard 导入 GitHub 仓库 (推荐)
方法二:使用 Wrangler CLI
方法三:通过 Cloudflare Dashboard 手动创建
- 设置环境变量 (关键步骤):
- 登录 Cloudflare -> Workers & Pages -> 您的 Worker -> 设置 -> 变量 -> 添加变量
- 添加以下变量(选择Secret类型):
BOT_TOKEN: 您的Telegram Bot TokenIMG_BED_URL: 您的图床上传URLAUTH_CODE: 您的图床认证码(如果需要)ADMIN_USERS: 管理员用户ID列表,多个ID用逗号分隔(例如:123456789,987654321)- 添加 KV 命名空间绑定:
- 变量名:
STATS_STORAGE - KV 命名空间:选择之前创建的命名空间
- 点击"保存并部署"
通过 Cloudflare Dashboard
- 设置 Telegram Webhook:
- 在浏览器中访问:
https://your-worker-name.your-subdomain.workers.dev/setup-webhook - 如果看到"Webhook设置成功"的消息,说明配置已完成
- 在浏览器中访问以下链接(替换对应的值):
- 如果显示
{"ok":true,"result":true,"description":"Webhook was set"}或类似信息,则表示设置成功。
方法一:使用内置的Webhook设置功能 (推荐)
方法二:手动设置
💬 使用说明
- 发送
/start启动机器人(仅首次需要)。
- 直接发送图片、视频、音频、文档或其他文件,机器人会自动处理上传。
- 要添加文件备注,在发送文件时添加文字描述(在 Telegram 中发送文件时直接输入描述文字即可)。
- 支持最大20Mb的文件上传(受Telegram Bot限制)。
- 支持400多种文件格式,包括常见的图片、视频、音频、文档、压缩包、可执行文件等。
- 使用
/formats命令查看支持的文件格式类别。
- 使用
/analytics命令查看所有统计分析功能(支持多种参数)。
- 使用
/history命令管理您的上传历史记录: /history search:关键词- 可按文件名或备注内容搜索/history desc:关键词- 专门按备注内容搜索
- 使用分片上传功能上传大文件(超过20MB):
- 首先将大文件分割成多个小于20MB的分片(可使用文件分割工具如7-Zip、WinRAR等)
- 发送命令:
/chunk_upload 5 large_video.mp4 这是我的大视频 - 5是分片数量
- large_video.mp4是最终文件名
- "这是我的大视频"是文件描述(可选)
- 按照机器人的提示,逐个发送所有分片
- 等待机器人合并和上传文件
- 获取最终的URL
- 随时可以使用
/chunk_cancel取消正在进行的分片上传
📊 统计分析功能
本机器人内置了完整的统计分析功能,可帮助用户了解他们的文件上传历史和存储使用情况:
统一的分析命令
使用统一的
/analytics 命令可以查看所有类型的统计信息:/analytics- 显示综合统计信息和命令帮助
/analytics storage- 显示存储使用情况
/analytics report- 显示月度使用报告
/analytics daily- 显示日报告
/analytics weekly- 显示周报告
/analytics monthly- 显示月报告
/analytics success- 显示上传成功率分析
统计功能详情
- 综合统计信息
- 总上传文件数量
- 总存储空间使用量
- 成功/失败上传数量
- 上传成功率
- 按文件类型的分布统计
- 存储使用情况
- 总存储空间
- 平均文件大小
- 存储使用趋势
- 使用报告(日/周/月)
- 显示指定时间段内的上传数量和大小
- 日报告:当天数据
- 周报告:过去7天数据
- 月报告:过去30天数据
- 上传成功率分析
- 总体成功率
- 按文件类型分类的上传数量
- 使用频率趋势
技术实现
- 统计数据存储在 Cloudflare KV 中,按用户ID分开保存
- 每次文件上传完成后自动更新统计数据
- 跟踪文件类型、大小、上传成功/失败状态
- 按日期记录使用数据,保留最近60天的记录
📋 上传历史管理
本机器人内置上传历史管理功能,能够帮助用户快速查找、管理之前上传的所有文件:
基本功能
/history- 查看所有上传历史记录
/history page2- 查看第2页历史记录(每页显示5条记录)
/history image- 只查看图片类型的历史记录
/history video- 只查看视频类型的历史记录
/history search:关键词- 按文件名或备注搜索历史记录
/history desc:关键词- 专门按备注内容搜索历史记录
/history delete_记录ID- 删除指定ID的历史记录
历史记录信息
每条历史记录会显示以下信息:
- 文件名
- 文件类型(带图标标识)
- 备注信息(如果有)
- 上传时间(精确到分钟)
- 文件大小
- 文件URL链接
- 记录ID(用于删除操作)
技术实现
- 历史记录存储在 Cloudflare KV 中,按用户ID分开保存
- 每次成功上传文件后自动添加到历史记录
- 最多保存最近100条记录,超过后自动清理最早的记录
- 支持按文件类型和文件名关键词筛选
- 支持专门按备注内容搜索
- 分页显示,避免消息过长
👮♂️ 管理员功能
本机器人提供完整的管理员模式,让管理员可以控制机器人的使用权限,监控使用情况并与用户互动。管理员功能受到严格的权限控制,只有在环境变量中配置的管理员用户ID才能访问。
管理员设置
在环境变量中设置
ADMIN_USERS 变量,填入管理员的 Telegram 用户ID,多个ID用逗号分隔,例如:管理员命令
/admin- 显示管理员命令面板
用户权限管理
/admin ban [用户ID]- 限制指定用户使用机器人
/admin unban [用户ID]- 解除对指定用户的限制
/admin list- 查看所有被限制的用户
用户监控
/admin users [页码]- 查看所有使用过机器人的用户(带分页功能)- 显示用户ID、用户名、首次使用时间、最后使用时间
- 每个用户的上传统计和存储使用情况
- 显示用户状态(正常/已限制)
系统统计
/admin stats- 查看机器人使用统计- 总用户数
- 总上传文件数
- 总上传大小
- 被限制用户数
消息广播
/admin broadcast [消息]- 向所有用户广播消息- 可用于发布通知、更新信息或维护预告
自动清理功能
/admin autoclean [天数]- 设置自动删除多少天前的内容- 设置为0可禁用自动清理功能
- 系统会每隔6小时自动检查并执行清理操作
- 设置后会立即执行一次清理并显示结果
/admin autoclean status- 查看当前自动清理设置- 显示是否启用、设置的天数、上次更新时间等信息
安全措施
- 管理员命令权限验证 - 只有配置的管理员用户ID才能使用管理员命令
- 被限制的用户无法使用机器人功能,但管理员不受此限制
- 用户操作日志记录,便于审计和排查问题
设置机器人命令菜单 (可选)
为了让用户在 Telegram 中更方便地使用命令,您可以通过 BotFather 设置命令列表:
- 在 Telegram 中再次与 @BotFather 对话。
- 发送
/setcommands命令。
- 按照提示,选择您刚刚部署配置好的机器人。
- 直接发送以下文本:
- 设置成功后,用户在与您的机器人对话时,点击
/按钮就能看到这些预设的命令选项了。
常见问题排查
- 机器人不响应命令
- 确认环境变量是否正确设置
- 访问
/setup-webhook端点重新配置Webhook - 检查 Cloudflare Worker 的日志以查看详细错误信息
- 上传失败
- 确认图床URL是否正确,并已包含完整的上传路径
- 验证认证码是否有效
- 检查图床服务是否有文件大小或类型限制
- 需要更新机器人
- 修改代码后,重新部署Worker:
wrangler deploy - 检查环境变量是否需要更新
版权说明
本项目为原创项目,开源协议遵循 MIT License。
如需对本项目进行二次修改或分发,请遵循以下要求:
- 保留原项目的版权信息
- 在文档中标明原项目地址:https://github.com/uki0xc/img-up-bot
- 标明修改内容与原作者信息
作者:@uki0x
邮箱:a@vki.im
Telegram:@uki0x
- Author:TRNote
- URL:https://nt.665669.xyz/article/imgupbot2
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!











