
TypingSVG
市面上已有多个打字 SVG 工具,但 TypingSVG 专注于 灵活性 与 渲染精确性,为开发者和内容创作者提供更精细的控制与一致的跨平台表现。
CattoPic是一个基于 Cloudflare 全家桶构建的开源图片托管服务,支持自动格式转换、标签管理、过期清理,以及一个功能丰富的随机图片 API,适合个人项目、内容聚合、爬虫配图、博客素材库等场景。
如果你需要一个轻量、高效、可完全掌控的图片托管方案,是一个基于 Cloudflare 全家桶构建的开源图片托管服务,支持自动格式转换、标签管理、过期清理,以及一个功能丰富的随机图片 API,适合个人项目、内容聚合、爬虫配图、博客素材库等场景。

所有组件均运行在 Cloudflare 边缘网络上,无需自建服务器,成本极低,且具备良好的全球访问性能。
/api/random,支持按标签、方向、格式、排除条件等灵活筛选。CattoPic 充分利用了 Cloudflare 提供的边缘计算与存储服务,形成一套高内聚、低耦合的架构:
| 组件 | 技术栈 | 作用说明 |
|---|---|---|
| 前端 | Next.js 16 + React 19 + Tailwind CSS | 图片管理界面,支持上传、浏览、标签操作 |
| API 后端 | Cloudflare Workers + Hono | 轻量 RESTful API,处理认证、路由、逻辑 |
| 存储 | Cloudflare R2 | 存放原始图片及转换后的 WebP/AVIF 文件 |
| 数据库 | Cloudflare D1(SQLite) | 存储图片元数据、标签、API 密钥 |
| 缓存 | Cloudflare KV | 缓存 API 响应,减少 D1 查询压力 |
| 异步任务 | Cloudflare Queues | 处理图片删除、批量操作等后台任务 |
| 图片处理 | Cloudflare Images | 实时格式转换、压缩、裁剪(按需) |
| 定时清理 | Cron Triggers | 定期扫描并删除过期图片 |
pnpm 包管理器git clone https://github.com/yourusername/cattopic.git
cd cattopic
pnpm install
cd worker && pnpm install
pnpm wrangler login
pnpm wrangler r2 bucket create cattopic-r2
pnpm wrangler d1 create CattoPic-D1
pnpm wrangler kv namespace create CACHE_KV
pnpm wrangler queues create cattopic-delete-queue
pnpm wrangler d1 execute CattoPic-D1 --remote --file=schema.sql
wrangler.tomlwrangler.example.toml 并填入各资源 ID(R2、D1、KV、Queue)。pnpm wrangler deployCLOUDFLARE_API_TOKEN 和 CLOUDFLARE_ACCOUNT_ID,实现 CI/CD。INSERT INTO api_keys (key, created_at) VALUES ('your-secure-api-key', datetime('now'));
NEXT_PUBLIC_API_URL: 你的 Worker 地址(如 https://cattopic.yourname.workers.dev)NEXT_PUBLIC_REMOTE_PATTERNS: 允许加载的域名(含 R2 和 Worker)# 获取横向自然风景图
curl "https://your-api.com/api/random?orientation=landscape&tags=nature,forest"
# 获取排除“私有”标签的 WebP 格式猫咪图
curl "https://your-api.com/api/random?tags=cat&exclude=private&format=webp"
支持参数:
orientation: landscape / portrait / autotags: 逗号分隔,必须全部匹配exclude: 逗号分隔,排除任一匹配format: original / webp / avifPOST /api/upload/singleGET/POST/PUT/DELETE /api/tagsGET/PUT/DELETE /api/images/:id所有写操作均需在请求头中携带:
Authorization: Bearer your-api-key
/api/random?tags=header 实现动态封面。CattoPic 完全运行在你的 Cloudflare 账户下:
/api/random,其余接口需 API Key 验证。






