✅技术选型与架构

层级技术选型
服务器网关Nginx
后端开发PHP + ThinkPHP8
API认证OAuth2 + JWT
缓存/Session管理Redis
消息队列Kafka
数据库PostgreSQL
监控告警Prometheus + Grafana + Loki
前端开发Vue 3 + PrimeVue
对象存储OSS/S3/MinIO(可动态配置为不同策略)
图片审核可配置审核API(如阿里、腾讯、百度)
图片压缩ffmeg/imacgik

📦 高可用与扩展

  • 对象存储和审核API可动态配置(策略中心统一管理)

  • 压缩策略可自定义和选择

  • 模块独立、易扩展

  • 用户分组,权限分配

  • 图片动态压缩+水印+防盗链+审核

🛠️ 业务模块分解(逻辑清单版)

1. 认证模块(Auth Service)

  • OAuth2 Password模式 / 客户端凭证模式

  • Access Token & Refresh Token

  • 令牌续期 / 失效管理

  • 支持 API Key 绑定用户

2. 用户管理(User Service)

  • 账户注册/登录

  • 用户组(普通、VIP、企业版等)

  • 存储配额管理(如免费5GB,高级版100GB)

3. 相册和图片管理(Album/Image Service)

  • 多级目录(文件夹结构)

  • 图片元数据(尺寸、格式、大小、hash)

  • 动态生成缩略图

4. 图片处理模块(Processing Service)

  • 图片压缩(JPG/PNG → WebP/AVIF)

  • 自定义压缩策略(质量比例、尺寸)

  • 水印生成(可配置位置、透明度)

5. 存储服务(Storage Service)

  • 本地存储

  • OSS / MinIO / S3支持

  • 存储策略切换(冷热存储)

6.压缩策略(Compression Strategy)

功能说明
预设压缩策略后台设置多个压缩策略(比如:高质量、中等质量、超高压缩、小尺寸)
自定义压缩策略部分用户可以自定义压缩参数(需要权限控制,比如 VIP 用户)
上传时选择策略用户上传图片时,可以指定用哪一个压缩策略
不同格式支持针对 JPG / PNG / WebP / AVIF 等分别定义压缩参数
系统默认策略如果用户不选,使用系统默认压缩策略
策略内容包括图片质量(quality)、尺寸缩放(resize)、格式转换(convert to WebP/AVIF)等
策略适配存储部分策略可以定义是否只保留压缩版或同时保留原图

7. 审核服务(Moderation Service)

  • 上传时异步审核(调用阿里云、腾讯云内容审核API)

  • 人工复审接口

8. 防盗链模块(Security Service)

  • URL签名

  • IP / Referer 防护

  • 限流策略(防止CC攻击)

9. 图片广场(Gallery Service)

  • 热门图片、最新上传

  • 标签分类浏览

  • 推荐系统(简单权重算法)

📜 后端微服务模块

微服务描述
Auth Service认证服务
User Service用户和权限管理
Album Service相册管理
Image Service图片上传、压缩、存储
Zip Service压缩策略
Storage Service存储策略
Processing Service图片压缩/转换/水印添加
Moderation Service内容审核处理
Gallery Service图片展览和推荐系统
Security Service防盗链验证和签名

✍ 业务流程

  1. 上传图片时:
  • 用户可以选择【使用哪种压缩策略】。
  • 不选的话,默认走【默认策略】。
  1. 压缩处理模块:
  • 根据压缩策略设置动态处理图片。
  • 输出 WebP、AVIF 格式,并按照尺寸要求生成缩略图。
  1. 存储模块:
  • 根据策略决定是存在本地,还是仅保存在某个oss。
  1. 后台管理:
  • 管理员可以添加、修改、删除存储策略。
  • 可以为不同用户组指定 存储空间 图片保护 水印 图片审核

📜 API 接口文档初版

🎯 用户认证 API
方法路径描述
POST/api/auth/login用户登录,返回AccessToken和RefreshToken
POST/api/auth/refresh刷新Token
POST/api/auth/logout登出并清除Token
🎯 图片上传 API
方法路径描述
POST/api/image/upload上传图片
上传参数
参数类型必须
---
filefile
album_idint
compression_strategy_idint
watermarkbool
storage_strategy_idint
🎯 相册管理 API
方法路径描述
GET/api/album/list获取我的相册列表
POST/api/album/create创建相册(支持多级目录)
POST/api/album/delete删除相册
🎯 压缩策略管理 API(管理员用)
方法路径描述
GET/api/compression_strategy/list列出所有压缩策略
POST/api/compression_strategy/create创建压缩策略
POST/api/compression_strategy/update更新压缩策略
POST/api/compression_strategy/delete删除压缩策略
🎯 审核API管理(管理员用)
方法路径描述
GET/api/moderation_api/list查看审核API列表
POST/api/moderation_api/set设置使用的审核API
🎯 存储策略管理(管理员用)
方法路径描述
GET/api/storage_strategy/list查看存储策略列表
POST/api/storage_strategy/set设置当前使用的存储策略
🎯 图片广场 API
方法路径描述
GET/api/gallery/list浏览热门、新上传、分类图片