CattoPic:基于 Cloudflare 生态的轻量级自托管图床
对于博主或独立站开发者来说,寻找一个既能完全掌控数据、又无需承担繁重运维压力的图床方案并非易事。传统的 VPS 部署不仅涉及服务器维护,还面临带宽成本与存储扩容的压力。CattoPic 正是为了解决这一痛点而生——它利用 Cloudflare 的全家桶技术栈,构建起一套高性能、零服务器运维的开源图床服务。
核心功能亮点
- 全自动格式优化: 支持 JPEG、PNG、GIF 等主流格式。上传后,系统会自动生成 WebP 和 AVIF 版本,在保证视觉质量的同时大幅降低带宽消耗,提升页面加载速度。
- 高效的标签管理: 内置灵活的标签系统,支持对图片进行分类归档,并提供批量编辑与删除功能,让海量资源管理不再混乱。
- 灵活的随机图片 API: 提供公开的随机调用接口,并支持通过标签进行精准过滤。无论是作为博客的动态封面,还是社交媒体的随机展示图,都能快速集成。
技术架构剖析
CattoPic 的核心竞争力在于其完全的 Serverless 架构,将计算、存储与缓存全部托管在 Cloudflare 边缘网络中。
| 组件 | 技术实现 | 核心职责 |
|---|---|---|
| 前端界面 | Next.js 16 / React 19 / Tailwind CSS | 提供响应式管理后台,支持深色模式 |
| 后端 API | Cloudflare Workers + Hono | 处理路由分发、权限验证与 REST 接口 |
| 对象存储 | Cloudflare R2 | 存储原图及优化后的 WebP/AVIF 副本 |
| 数据库 | Cloudflare D1 (SQLite) | 管理元数据、标签关联及 API 密钥 |
| 性能缓存 | Cloudflare KV | 缓存高频响应,降低延迟 |
| 异步队列 | Cloudflare Queues | 处理批量删除或大规模转换任务 |
| 图像处理 | Cloudflare Images | 执行实时压缩与格式转换 |
| 自动化 | Cron Triggers | 定时清理过期资源 |
部署准备与适用场景
部署要求
在开始部署前,请确保你具备以下环境:
- 运行环境: Node.js 18+ 及 pnpm 包管理器
- 账号准备: 激活的 Cloudflare 账号(用于部署后端与存储)
- 托管平台: Vercel 账号或任何支持静态托管的服务(用于部署前端)
लागू परिदृश्य
- 个人内容创作者: 替代商业图床,实现完全的资源所有权。
- AI 图像项目: 作为 AI 生成图片的素材库与分发中心。
- 前端集成: 需要快速调用随机图片、Banner 封面或短链接缩图的系统。
संसाधन लिंक
ऑनलाइन अनुभव: https://image-flow-next-js.vercel.app/
GitHub 开源地址: https://github.com/Yuri-NagaSaki/CattoPic
पाठ का अंत
