github 地址 https://github.com/taojinzi/JSimages
介绍
基于 Cloudflare R2 储存的图床/视频床/文件床服务
功能特点
可选的访客验证功能
可选的图片压缩功能(默认开启)
可选的文件大小限制(默认 10MB)
支持查看本地历史记录
支持所有文件格式上传
支持多文件上传和粘贴上传
支持批量操作和显示上传时间
Cloudflare Cache API 缓存支持
基于 Cloudflare R2 的文件存储
更新日志
最近更新: 2024-12-18
更新管理界面样式
移除前端的文件类型和文件大小限制
通过环境变量控制上传文件的大小
历史更新记录
部署步骤
⚠️虽然项目的代码使用了Worker的缓存API,但还是建议配置好边缘 TTL 并开启访客验证,防止被刷导致扣费!
- 变量说明
需要在 Cloudflare Workers 中配置以下变量:
变量名 说明 必填 示例
DOMAIN 自定义域名 是 example.workers.dev
DATABASE D1 数据库绑定变量名称 是 DATABASE
USERNAME 管理员用户名 是 admin
PASSWORD 管理员密码 是 password123
ADMIN_PATH 管理后台路径 是 admin
R2_BUCKET R2 存储桶名称 是 R2_BUCKET
ENABLE_AUTH 访客验证(设置为 true 开启,不设置或设置为 false 则关闭) 否 false
MAX_SIZE_MB 单文件最大支持大小(单位:MB,默认值为 10) 否 10
- 创建 R2 存储桶
登录 Cloudflare Dashboard
进入 R2对象储存 → 创建存储桶
设置存储桶名称和区域
保存存储桶的名称以便后续使用 - 创建 D1 数据库
登录 Cloudflare Dashboard
进入 Workers & Pages → D1 SQL 数据库
点击 创建 创建数据库
数据库名称可自定义,例如 images
建议选择数据库位置为 亚太地区,可以获得更好的访问速度
创建数据表:
点击数据库名称进入详情页
选择 控制台 标签
执行以下 SQL 语句:
CREATE TABLE media (
url TEXT PRIMARY KEY
); - 创建 Worker
进入 Workers & Pages
点击 创建
选择 创建 Worker
为 Worker 设置一个名称
点击 部署 创建 Worker
点击继续处理项目 - 配置变量和机密
在 Worker 的 设置 → 变量和机密 中
点击 添加 添加以下变量
DOMAIN
USERNAME
PASSWORD
ADMIN_PATH
ENABLE_AUTH(可选)
MAX_SIZE_MB(可选)
点击 部署 - 绑定 D1 数据库和 R2 储存
在 Worker 设置页面找到 设置 → 绑定
点击 添加 添加以下变量
DATABASE
R2_BUCKET
点击 部署 - 绑定域名
在 Worker 的 设置 → 域和路由
点击 添加 → 自定义域
输入你在 Cloudflare 绑定的域名
点击 添加域
等待域名生效 - 部署代码
进入 Worker 的编辑页面
将 _worker.js 的完整代码复制粘贴到编辑器中
点击 部署 - 配置缓存
进入 Cloudflare Dashboard
进入 网站 → 选择你的自定义域名 → 缓存 → Cache Rules → 创建缓存规则
选择 缓存所有内容模板
设置 边缘 TTL → 忽略缓存控制标头,使用此 TTL → 30天(根据需要设置)
点击 部署