ImageFlow

ImageFlow 是一个为现代网站和应用程序设计的高效图像服务系统。它能根据设备类型自动提供最合适的图像,并支持 WebP 和 AVIF 等现代图像格式,显著提升网站性能和用户体验。

该款程序非常适合作为个人图床以及随机图接口使用。但是对CPU要求较高,谨慎上传超高品质图片,以免造成服务器宕机。

主要特性

  • API 密钥认证 :安全的 API 密钥验证机制,保护您的图片上传功能
  • 自适应图像服务 :根据设备类型(桌面端/移动端)自动提供横向或纵向图片
  • 现代格式支持 :自动检测浏览器兼容性并提供 WebP 或 AVIF 格式图片
  • 图片过期功能 :支持设置图片过期时间,过期后自动删除(支持本地和S3存储)
  • 简单的 API :通过简单的 API 调用获取随机图片,支持标签过滤
  • 用户友好的上传界面 :支持拖拽上传,具有暗黑模式、实时预览和标签管理功能
  • 图片管理功能 :通过直观的管理界面查看、筛选和删除图片
  • 自动图像处理 :上传后自动检测图像方向并转换为多种格式
  • 异步处理 :图像转换在后台进行,不影响主服务
  • 高性能 :优化的网络性能以减少加载时间
  • 易于部署 :简单的配置和部署流程
  • 多存储支持 :支持本地存储和 S3 兼容存储(如 R2)
  • Redis 支持 :可选的 Redis 集成,用于元数据和标签存储,提高性能

页面预览

https://assets.qninq.cn/qning/xjrEqjA5.webp
https://assets.qninq.cn/qning/xjrEqjA5.webp
https://assets.qninq.cn/qning/Lq19yKNJ.webp
https://assets.qninq.cn/qning/Lq19yKNJ.webp
https://assets.qninq.cn/qning/LryzJygA.webp
https://assets.qninq.cn/qning/LryzJygA.webp

快速部署

这里比较推荐采用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 密钥认证。您可以:

  1. .env 文件中设置 API 密钥
  2. 通过网页界面输入 API 密钥
  3. API 密钥在验证成功后将被保存

上传图片

访问 http://localhost:8686/ 的上传界面。您可以:

  1. 将图片拖拽到上传区域
  2. 点击选择要上传的图片
  3. 选择图片的过期时间(可选)
  4. 添加标签对图片进行分类(可选)
  5. 实时预览选中的图片
  6. 系统自动检测图片是横向还是纵向
  7. 上传后,图片会自动转换为 WebP 和 AVIF 格式
  8. 如果设置了过期时间,图片将在过期后自动删除

管理图片

访问 http://localhost:8686/manage.html 的管理界面。您可以:

  1. 查看所有已上传的图片,并可按格式、方向和标签进行筛选
  2. 点击任意图片查看详细信息
  3. 复制图片的直接URL以方便分享
  4. 删除不再需要的图片(需要API密钥认证)
  5. 当删除图片时,所有相关格式(原始、WebP、AVIF)将同时被移除

获取随机图片

通过 API 获取随机图片(无需 API 密钥):

GET http://localhost:8686/api/random
GET http://localhost:8686/api/random?tag=nature

系统会根据请求头中的设备类型和浏览器支持返回最合适的图片。您还可以通过标签筛选随机图片。

API 参考

接口方法描述参数认证
/api/randomGET获取随机图片tag:可选,按标签筛选不需要
/api/uploadPOST上传新图片Form 数据,字段名 "images[]"可选参数:expiryMinutes(过期时间,分钟)可选参数:tags(标签数组)需要 API 密钥
/api/delete-imagePOST删除图片及其所有格式JSON 数据,包含 idstorageType需要 API 密钥
/api/validate-api-keyPOST验证 API 密钥请求头中的 API 密钥不需要
/api/imagesGET列出所有已上传的图片可选:tag(按标签筛选)需要 API 密钥
/api/configGET获取系统配置需要 API 密钥
/api/trigger-cleanupPOST手动触发清理过期图片需要 API 密钥
/api/tagsGET获取所有可用标签需要 API 密钥
/api/debug/tagsGET获取详细标签信息需要 API 密钥

开源地址

Loading...

🏷本文标签:Docker,️ImageFlow,️图像处理,️图片托管,️图床
最后修改:2025 年 04 月 22 日
如果觉得我的文章对你有用,请随意赞赏