|
|
|
|
- 无限存储 - 不限数量的图片和文件上传
- 完全免费 - 托管于 Cloudflare,免费额度内零成本
- 免费域名 - 使用
*.pages.dev二级域名,也支持自定义域名 - 多存储后端 - 支持 Telegram、Cloudflare R2、S3 兼容存储、Discord、HuggingFace
- 内容审核 - 可选的图片审核 API,自动屏蔽不良内容
- 多格式支持 - 图片、视频、音频、文档、压缩包等
- 在线预览 - 支持图片、视频、音频、文档(pdf、docx、txt)格式的预览
- 分片上传 - 支持最大 100MB 文件(配合 R2/S3)
- 访客上传 - 可选的访客上传功能,支持文件大小和每日次数限制
- 多种视图 - 网格、列表、瀑布流多种管理界面
- 存储分类 - 直观区分不同存储后端的文件
- Cloudflare 账户
- Telegram 账户(如使用 Telegram 存储)
-
获取 Bot Token
- 向 @BotFather 发送
/newbot - 按提示创建机器人,获得
BOT_TOKEN
- 向 @BotFather 发送
-
创建频道并添加机器人
- 创建一个新的 Telegram 频道
- 将机器人添加为频道管理员
-
获取 Chat ID
- 向 @VersaToolsBot 或 @GetTheirIDBot 发送消息获取频道 ID
-
Fork 本仓库
-
创建 Pages 项目
- 登录 Cloudflare Dashboard
- 进入
Workers 和 Pages→创建应用程序→Pages→连接到 Git - 选择 Fork 的仓库,点击部署
-
配置环境变量
- 进入项目
设置→环境变量 - 添加必需变量:
- 进入项目
| 变量名 | 说明 | 必需 |
|---|---|---|
TG_Bot_Token |
Telegram Bot Token | ✅ |
TG_Chat_ID |
Telegram 频道 ID | ✅ |
BASIC_USER |
管理后台用户名 | 可选 |
BASIC_PASS |
管理后台密码 | 可选 |
重新部署 - 修改环境变量后需重新部署生效
启用图片管理功能需要配置 KV:
- 进入 Cloudflare Dashboard →
Workers 和 Pages→KV - 点击
创建命名空间,命名为katelya-tgbed - 进入 Pages 项目 →
设置→函数→KV 命名空间绑定 - 添加绑定:变量名
img_url,选择创建的命名空间 - 重新部署项目
配置 R2 可支持最大 100MB 文件上传:
-
创建存储桶
- Cloudflare Dashboard →
R2 对象存储→创建存储桶 - 命名为
katelya-files
- Cloudflare Dashboard →
-
绑定到项目
- Pages 项目 →
设置→函数→R2 存储桶绑定 - 变量名
R2_BUCKET,选择存储桶
- Pages 项目 →
-
启用 R2
设置→环境变量→ 添加USE_R2=true- 重新部署
支持任何 S3 兼容的对象存储服务,包括 AWS S3、MinIO、BackBlaze B2、阿里云 OSS 等。
环境变量:
| 变量名 | 说明 | 示例 |
|---|---|---|
S3_ENDPOINT |
S3 服务端点 URL | https://s3.us-east-1.amazonaws.com |
S3_REGION |
区域 | us-east-1 |
S3_ACCESS_KEY_ID |
访问密钥 ID | AKIA... |
S3_SECRET_ACCESS_KEY |
秘密访问密钥 | wJalr... |
S3_BUCKET |
存储桶名称 | my-filebed |
不同服务商的 Endpoint 示例:
| 服务商 | Endpoint 格式 | Region |
|---|---|---|
| AWS S3 | https://s3.{region}.amazonaws.com |
us-east-1 等 |
| MinIO | https://minio.example.com:9000 |
us-east-1 |
| BackBlaze B2 | https://s3.{region}.backblazeb2.com |
us-west-004 等 |
| 阿里云 OSS | https://oss-{region}.aliyuncs.com |
cn-hangzhou 等 |
| Cloudflare R2 | https://{account_id}.r2.cloudflarestorage.com |
auto |
部署步骤:
- 在你的 S3 服务商创建存储桶
- 获取 Access Key ID 和 Secret Access Key
- 在 Cloudflare Pages 项目中添加上述环境变量
- 重新部署,前端将自动显示 S3 存储选项
通过 Discord 频道存储文件,支持 Webhook 和 Bot 两种方式。
注意: Discord 附件 URL 会在约 24 小时后过期。本项目通过代理方式提供文件下载,每次请求时自动刷新 URL。因此即使使用 Webhook 上传,也需要配置 Bot Token 用于文件获取。
环境变量:
| 变量名 | 说明 | 必需 |
|---|---|---|
DISCORD_WEBHOOK_URL |
Discord Webhook URL(推荐用于上传) | 二选一 |
DISCORD_BOT_TOKEN |
Discord Bot Token(用于获取和删除文件) | 推荐 |
DISCORD_CHANNEL_ID |
Discord 频道 ID(Bot 模式上传时需要) | Bot 模式 |
Webhook 方式部署(推荐):
- 在 Discord 服务器中,进入频道设置 → 集成 → Webhook
- 创建新的 Webhook,复制 Webhook URL
- 在 Cloudflare Pages 添加环境变量
DISCORD_WEBHOOK_URL - (推荐)同时创建 Discord Bot 并添加
DISCORD_BOT_TOKEN,用于文件获取和删除 - 重新部署
Bot 方式部署:
- 前往 Discord Developer Portal 创建应用
- 在 Bot 标签页创建 Bot,获取 Token
- 在 OAuth2 → URL Generator 中,选择
botscope 和Send Messages、Attach Files、Read Message History权限 - 使用生成的 URL 邀请 Bot 到你的服务器
- 在 Cloudflare Pages 添加
DISCORD_BOT_TOKEN和DISCORD_CHANNEL_ID - 重新部署
限制:
- 无 Boost 服务器:25MB/文件
- Level 2 Boost:50MB/文件
- Level 3 Boost:100MB/文件
使用 HuggingFace Datasets API 存储文件。文件以 git commit 的形式保存在 Dataset 仓库中。
环境变量:
| 变量名 | 说明 | 示例 |
|---|---|---|
HF_TOKEN |
HuggingFace 写入权限 Token | hf_xxxxxxxxxxxx |
HF_REPO |
Dataset 仓库 ID | username/my-filebed |
部署步骤:
- 注册 HuggingFace 账户
- 创建新的 Dataset 仓库(Settings → New Dataset)
- 前往 Settings → Access Tokens 创建 Token(需要 Write 权限)
- 在 Cloudflare Pages 添加
HF_TOKEN和HF_REPO环境变量 - 重新部署
限制:
- 普通上传(base64):约 35MB/文件
- LFS 上传:最大 50GB/文件
- 免费用户仓库总大小:约 50GB
允许未登录用户上传文件,站长可自行配置是否开启及限制规则。
| 变量名 | 说明 | 默认值 |
|---|---|---|
GUEST_UPLOAD |
启用访客上传 | false |
GUEST_MAX_FILE_SIZE |
访客单文件最大大小(字节) | 5242880(5MB) |
GUEST_DAILY_LIMIT |
访客每日上传次数限制(按 IP 计) | 10 |
启用方式:
- 在环境变量中设置
GUEST_UPLOAD=true - 按需调整
GUEST_MAX_FILE_SIZE和GUEST_DAILY_LIMIT - 确保已配置
BASIC_USER和BASIC_PASS(否则无访客/管理员区分) - 重新部署
功能说明:
- 访客可在首页直接上传文件,无需登录
- 访客有单文件大小限制和每日上传次数限制
- 访客不能使用分片上传和高级存储选项(S3/Discord/HuggingFace)
- 访客不能访问管理后台和图片浏览页
- 限制基于访客 IP 地址,每日自动重置
| 变量名 | 说明 | 默认值 |
|---|---|---|
ModerateContentApiKey |
图片审核 API Key(从 moderatecontent.com 获取) | - |
WhiteList_Mode |
白名单模式,仅白名单图片可加载 | false |
USE_R2 |
启用 R2 存储 | false |
disable_telemetry |
禁用遥测 | - |
| 页面 | 路径 | 说明 |
|---|---|---|
| 首页/上传 | / |
批量上传、拖拽、粘贴上传 |
| 图片浏览 | /gallery.html |
图片网格浏览 |
| 管理后台 | /admin.html |
文件管理、黑白名单 |
| 文件预览 | /preview.html |
多格式文件预览 |
| 登录页 | /login.html |
后台登录 |
Cloudflare 免费额度:
- 每日 100,000 次请求
- KV 每日 1,000 次写入、100,000 次读取、1,000 次列出
- 超出后需升级付费计划($5/月起)
各存储后端文件大小限制:
| 存储后端 | 单文件最大大小 |
|---|---|
| Telegram | 20MB |
| Cloudflare R2 | 100MB(分片上传) |
| S3 兼容存储 | 100MB(分片上传) |
| Discord(无 Boost) | 25MB |
| Discord(Level 2+) | 50-100MB |
| HuggingFace | 35MB(普通)/ 50GB(LFS) |
| 变量名 | 说明 | 必需 |
|---|---|---|
TG_Bot_Token |
Telegram Bot Token | ✅ |
TG_Chat_ID |
Telegram 频道 ID | ✅ |
BASIC_USER |
管理后台用户名 | 可选 |
BASIC_PASS |
管理后台密码 | 可选 |
USE_R2 |
启用 R2 存储 | 可选 |
S3_ENDPOINT |
S3 端点 URL | 可选 |
S3_REGION |
S3 区域 | 可选 |
S3_ACCESS_KEY_ID |
S3 访问密钥 | 可选 |
S3_SECRET_ACCESS_KEY |
S3 秘密密钥 | 可选 |
S3_BUCKET |
S3 存储桶名 | 可选 |
DISCORD_WEBHOOK_URL |
Discord Webhook URL | 可选 |
DISCORD_BOT_TOKEN |
Discord Bot Token | 可选 |
DISCORD_CHANNEL_ID |
Discord 频道 ID | 可选 |
HF_TOKEN |
HuggingFace Token | 可选 |
HF_REPO |
HuggingFace 仓库 ID | 可选 |
GUEST_UPLOAD |
启用访客上传 | 可选 |
GUEST_MAX_FILE_SIZE |
访客文件大小限制(字节) | 可选 |
GUEST_DAILY_LIMIT |
访客每日上传次数 | 可选 |
ModerateContentApiKey |
图片审核 API Key | 可选 |
WhiteList_Mode |
白名单模式 | 可选 |
disable_telemetry |
禁用遥测 | 可选 |
本项目参考了以下开源项目:
- Telegraph-Image - 原始灵感来源
MIT License



