README.md
December 4, 2025 · View on GitHub
项目简介
PixR2 是一个 无服务器部署(Serverless) 的在线图床,基于 Cloudflare Workers 和 R2 构建
支持 网页端上传 与 Telegram Bot 上传 两种方式,帮助你快速、安全地将图片存储到云端,并提供管理与分享功能
- 📤 支持上传 JPG / PNG / GIF / WebP 图片
- 🌐 支持网页上传与 Telegram Bot 上传双入口
- 🖼 支持在线预览与文件管理
- 🔗 支持创建与管理分享链接,快速将指定文件夹对外分享
- ⚡ 使用 Cloudflare Workers 部署,无需传统服务器
项目预览
Workers 部署教程
0. 准备工作
- 准备一个可用的域名(Cloudflare 提供的 workers.dev 域名在中国大陆无法访问)
- [可选]创建一个 Telegram 机器人(在 Telegram 中搜索 @BotFather,按照指引创建你的机器人)
- [可选]获取你的 Telegram 用户 ID(ID 为纯数字,用于限制哪些用户可以使用该机器人)
1. 创建 KV 与 R2 存储桶
- 在 Cloudflare 侧边栏中找到 存储与数据库
- 选择 Workers KV
- 创建一个任意名称的 KV 命名空间
- 再选择 R2 对象存储
- 创建一个任意名称的 R2 存储桶
2. 上传代码部署
- 在 Cloudflare 侧边栏找到 计算和 AI
- 选择 Workers 和 Pages
- 创建一个新的 Workers,选择 从 Hello World! 模板开始
- 填写一个喜欢的名字并部署
- 点击右上角的 编辑代码,将 _worker.js 文件内容粘贴进去并保存部署
- 返回 Worker 项目,点击 绑定 -> 添加绑定
- 选择 R2 存储桶,变量名填写
BUCKET_R2,选择之前创建的 R2 存储桶 - 再次添加绑定,选择 KV 命名空间,变量名填写
SHARES_KV,选择之前创建的 KV - 再次添加绑定,选择 KV 命名空间,变量名填写
INDEXES_KV,选择之前创建的 KV
- 选择 R2 存储桶,变量名填写
- 点击 设置 -> 变量和机密,添加以下环境变量:
| 变量名 | 说明 |
|---|---|
| SECRET_KEY | Web 面板登陆密码(请不要使用弱密码) |
| ENABLE_TELEGRAM_BOT | 是否启用 Telegram 机器人功能 ( true / false )仅在启用时需要填写以下变量 |
| TELEGRAM_BOT_TOKEN | Telegram 机器人 Token |
| USER_ID | 允许使用此机器人的 Telegram 用户 ID,多个用户使用英文逗号分隔 |
- 最后在 域和路由 为你的 Workers 项目添加自定义域
- 访问
https://<你的自定义域>/setWebhook激活 Telegram Webhook - 现在就可以通过 Telegram Bot 和 Web 面板开始使用了
- 在 Telegram 里发送任意消息即可获得 Bot 指令帮助
其他
本项目基于 cloudflare-r2-telegram-bot 二次开发
采用 MIT 许可协议,详见 LICENSE 文件
