修改自我的telegraph图床项目,原项目的数据通过TG_BOT上传。
新版完全基于CloudFlare的产品,且功能和界面和先前的一样,使用非常方便!
支持worker && pages部署!使用pages部署可以fork仓库,或者下载_worker.js文件打包成压缩文件上传!
先来了解一下免费套餐的额度。
免费套餐介绍
- 存储: 每月 10 GB
- A类操作: 每月 100 万次请求
- B类操作: 每月 1000 万次请求
- 出口(数据传输到互联网): 免费
个人使用完全足够!图床默认开启压缩,可以储存更多的图片文件!
如果不需要压缩可以自行修改代码273行,将 enableCompression: true
修改为 enableCompression: false
即可!
功能特点
- 查看本地历史记录
- 可选的访客验证功能
- 单文件最大支持 20MB
- 支持多文件上传和粘贴上传
- 支持批量操作和显示上传时间
- 图片自动压缩(GIF和视频除外)
- Cloudflare Cache API 缓存支持
- 基于 Cloudflare R2 的文件存储
- 支持多种链接格式(URL、BBCode、Markdown)
- 支持常见的图片和视频格式(jpg、png、gif、mp4)
部署教程:
1. 环境变量说明
需要在 Cloudflare Workers 中配置以下环境变量:
变量名 | 说明 | 必填 | 示例 |
---|---|---|---|
DOMAIN | 自定义域名 | 是 | example.workers.dev |
DATABASE | D1 数据库绑定变量名称 | 是 | DATABASE |
USERNAME | 管理员用户名 | 是 | admin |
PASSWORD | 管理员密码 | 是 | password123 |
ADMIN_PATH | 管理后台路径 | 是 | admin |
ENABLE_AUTH | 访客验证(设置为 true 开启,不设置或设置为 false 则关闭) | 否 | false |
R2_BUCKET | R2 存储桶名称 | 是 | R2_BUCKET |
2. 创建 R2 存储桶
- 登录 Cloudflare Dashboard
- 进入
R2对象储存
→创建存储桶
- 设置存储桶名称和区域
- 保存存储桶的名称以便后续使用
3. 创建 D1 数据库
- 登录 Cloudflare Dashboard
- 进入
Workers & Pages
→D1 SQL 数据库
- 点击
创建
创建数据库- 数据库名称可自定义,例如
images
- 建议选择数据库位置为
亚太地区
,可以获得更好的访问速度
- 数据库名称可自定义,例如
- 创建数据表:
- 点击数据库名称进入详情页
- 选择
控制台
标签 - 执行以下 SQL 语句:
CREATE TABLE media (
url TEXT PRIMARY KEY
);
4. 创建 Worker
- 进入
Workers & Pages
- 点击
创建
- 选择
创建 Worker
- 为 Worker 设置一个名称
- 点击
部署
创建 Worker - 点击继续处理项目
5. 配置环境变量
- 在 Worker 的
设置
→变量和机密
中 - 点击
添加
添加变量 - 点击
部署
6. 绑定数据库和 R2 储存
- 在 Worker 设置页面找到
设置
→绑定
- 点击
添加
- 选择
D1数据库
- 设置变量名为
DATABASE
- 选择之前创建的数据库
- 点击
部署
- 重复上述步骤绑定 R2 储存,变量名为
R2_BUCKET
7. 绑定域名
- 在 Worker 的
设置
→域和路由
- 点击
添加
→自定义域
- 输入你在 Cloudflare 绑定的域名
- 点击
添加域
- 等待域名生效
8. 部署代码
- 进入 Worker 的编辑页面
- 将
_worker.js
的完整代码复制粘贴到编辑器中 - 点击
部署
9. 配置缓存
- 进入 Cloudflare Dashboard
- 进入
网站
→选择你的自定义域名
→缓存
→Cache Rules
→创建缓存规则
- 选择
缓存所有内容模板
- 设置
边缘 TTL
→忽略缓存控制标头,使用此 TTL
→30天
(根据需要设置) - 点击
部署
有需要的自行部署!
源码:GitHub - 0-RTT/JSimages: 基于 Cloudflare R2 储存的图床/视频床服务