跳到主要内容

项目介绍

Perfect Pic 是一个基于 Go (Gin) 和 React 开发的高性能、轻量级且功能完备的图床。采用前后端分离架构,使用AI辅助开发,专为个人或小型团队设计,提供安全可靠的图片存储、管理和分发功能。

核心特性

  • 高性能架构

    • 多数据库适配: 开箱即用支持 SQLite (零配置),并可无缝切换至 MySQLPostgreSQL 以适应生产环境。
    • 多级缓存加速: 结合 HTTP 静态资源缓存与服务端内存缓存策略,大幅降低数据库压力,提升响应速度。
    • Redis 持久化支持: 可选接入 Redis,用于限流状态、Auth 用户状态缓存与重置密码 Token 的跨实例持久化与共享。
    • 并发与稳定性: 针对不同数据库自动调优连接池,支持高并发读写;配合优雅停机机制,保障业务处理不中断。
  • 安全可靠

    • 多维安全防御: 内置 JWT 身份认证、动态 IP 限流 (Rate Limiting) 以及生产环境安全检查,有效抵御恶意攻击。
    • 深度文件校验: 基于文件内容 (Magic Bytes) 而非后缀名识别真实文件类型,杜绝伪装文件上传风险。
    • 数据一致性: 核心操作(如批量删除、配额扣减)采用原子事务处理,确保文件与数据库状态始终同步。
  • 现代架构与易用性

    • 前后端分离: 基于标准 RESTful API 设计,逻辑解耦。同时支持将前端资源嵌入二进制文件,既享受分离开发的灵活性,又拥有“单文件部署”的便捷性。
    • 配置热重载: 支持在线动态调整系统参数(如限流阈值、站点设置),无需重启服务。
    • 智能配额管理: 采用增量更新策略,快速计算用户剩余存储空间。
    • 规范化存储: 自动按日期分目录存储文件,便于运维管理与备份。

技术栈

  • 语言: Go (Golang)
  • Web 框架: Gin
  • ORM: GORM
  • 数据库: SQLite, MySQL, PostgreSQL
  • 缓存/持久化: Redis (可选) / Memory
  • 配置管理: Viper
  • 工具库: UUID, Captcha, Lumberjack (日志)