ImageFlow
ImageFlow 是一个为现代网站和应用程序设计的高效图像服务系统。它能根据设备类型自动提供最合适的图像,并支持 WebP 和 AVIF 等现代图像格式,显著提升网站性能和用户体验。
该款程序非常适合作为个人图床以及随机图接口使用。但是对CPU要求较高,谨慎上传超高品质图片,以免造成服务器宕机。
主要特性
- API 密钥认证 :安全的 API 密钥验证机制,保护您的图片上传功能
- 自适应图像服务 :根据设备类型(桌面端/移动端)自动提供横向或纵向图片
- 现代格式支持 :自动检测浏览器兼容性并提供 WebP 或 AVIF 格式图片
- 图片过期功能 :支持设置图片过期时间,过期后自动删除(支持本地和S3存储)
- 简单的 API :通过简单的 API 调用获取随机图片,支持标签过滤
- 用户友好的上传界面 :支持拖拽上传,具有暗黑模式、实时预览和标签管理功能
- 图片管理功能 :通过直观的管理界面查看、筛选和删除图片
- 自动图像处理 :上传后自动检测图像方向并转换为多种格式
- 异步处理 :图像转换在后台进行,不影响主服务
- 高性能 :优化的网络性能以减少加载时间
- 易于部署 :简单的配置和部署流程
- 多存储支持 :支持本地存储和 S3 兼容存储(如 R2)
- Redis 支持 :可选的 Redis 集成,用于元数据和标签存储,提高性能
页面预览



快速部署
这里比较推荐采用docker-compose部署方式
更多部署方式可前往项目的部署文档
git clone https://github.com/Yuri-NagaSaki/ImageFlow && cd ImageFlow
cp .env.example .env
vim .env
# 这里.env主要修改API_KEY和存储方式,想快速体验建议填写local
docker compose up -d
默认监听8686端口,如有必要,自行修改docker-compose.yaml。
使用方法
API 密钥认证
图片上传功能需要 API 密钥认证。您可以:
- 在
.env
文件中设置 API 密钥 - 通过网页界面输入 API 密钥
- API 密钥在验证成功后将被保存
上传图片
访问 http://localhost:8686/
的上传界面。您可以:
- 将图片拖拽到上传区域
- 点击选择要上传的图片
- 选择图片的过期时间(可选)
- 添加标签对图片进行分类(可选)
- 实时预览选中的图片
- 系统自动检测图片是横向还是纵向
- 上传后,图片会自动转换为 WebP 和 AVIF 格式
- 如果设置了过期时间,图片将在过期后自动删除
管理图片
访问 http://localhost:8686/manage.html
的管理界面。您可以:
- 查看所有已上传的图片,并可按格式、方向和标签进行筛选
- 点击任意图片查看详细信息
- 复制图片的直接URL以方便分享
- 删除不再需要的图片(需要API密钥认证)
- 当删除图片时,所有相关格式(原始、WebP、AVIF)将同时被移除
获取随机图片
通过 API 获取随机图片(无需 API 密钥):
GET http://localhost:8686/api/random
GET http://localhost:8686/api/random?tag=nature
系统会根据请求头中的设备类型和浏览器支持返回最合适的图片。您还可以通过标签筛选随机图片。
API 参考
接口 | 方法 | 描述 | 参数 | 认证 |
---|---|---|---|---|
/api/random | GET | 获取随机图片 | tag :可选,按标签筛选 | 不需要 |
/api/upload | POST | 上传新图片 | Form 数据,字段名 "images[]"可选参数:expiryMinutes (过期时间,分钟)可选参数:tags (标签数组) | 需要 API 密钥 |
/api/delete-image | POST | 删除图片及其所有格式 | JSON 数据,包含 id 和 storageType | 需要 API 密钥 |
/api/validate-api-key | POST | 验证 API 密钥 | 请求头中的 API 密钥 | 不需要 |
/api/images | GET | 列出所有已上传的图片 | 可选:tag (按标签筛选) | 需要 API 密钥 |
/api/config | GET | 获取系统配置 | 无 | 需要 API 密钥 |
/api/trigger-cleanup | POST | 手动触发清理过期图片 | 无 | 需要 API 密钥 |
/api/tags | GET | 获取所有可用标签 | 无 | 需要 API 密钥 |
/api/debug/tags | GET | 获取详细标签信息 | 无 | 需要 API 密钥 |
开源地址
Loading...
1 条评论
我用的easyimage