项目介绍
项目概述
AstrNest 是一个现代化的全栈图床与内容治理平台,基于 Spring Boot 3.4.1 和 Vue 3 构建,为企业提供完整的图片管理解决方案。
📸 什么是图床?
图床,简单来说,就是专门用来在网络上存储和分享图片的服务器。它的核心功能是提供图片的存储服务,并为你生成一个唯一的图片外链地址。当你把这个链接放到你的网站、论坛帖子、博客文章或者社交媒体中时,其他人就可以通过这个链接直接访问到你的图片。
图床的核心价值
节省存储与带宽
对于个人用户或小型网站,尤其是使用低配置服务器的用户,将图片存放在图床可以有效节省本地服务器的存储空间和带宽,从而提升网站的整体运行速度和流畅度。
提升访问速度
很多图床服务会使用CDN(内容分发网络)加速,将你的图片复制到全球多个节点。当用户访问时,可以从离他们最近的服务器加载图片,从而大幅提升图片的加载速度。
便捷的分享与管理
你无需担心图片占用本地空间,可以随时随地通过链接分享图片。此外,图床通常提供图片管理功能,如按类别、标签或时间进行组织,方便你查找和使用。
图床如何管理图片
图片上传
- 支持通过网页拖拽、直接选择文件、甚至直接粘贴来自剪贴板的图片进行上传
- 部分图床还提供API接口,方便开发者集成到其他应用或工具中(例如与Typora等Markdown编辑器搭配)
图片存储
- 存储方案多样,包括本地服务器存储、第三方对象存储(如阿里云OSS、腾讯云COS、S3协议存储桶等)
- 为了数据安全和访问速度,可能会采用分布式存储或跨多个地理位置部署服务器
图片处理与分发
- 许多图床提供内置的图片处理功能,如裁剪、缩放、压缩、添加水印以及格式转换(例如将图片转换为WebP格式以减小体积)
- 通过CDN加速,确保全球用户都能快速访问图片
管理与安全
- 用户与权限管理:对于自建或高级图床,可以设置多用户管理、分组,并控制不同用户对图片的上传、删除和查看权限
- 安全措施:包括设置访问权限(公开/私有)、防盗链技术、域名过滤白名单,甚至集成图像审查(如鉴黄、鉴暴)功能,防止违规内容传播
- 操作日志:记录用户的所有操作,方便事件溯源和系统维护
🎯 核心特性
完整的API生态
- RESTful API + API密钥认证 + Web管理界面
- 支持用户门户、安全管理、API密钥管理、系统配置等完整接口
多云存储支持
- 内置 Local、阿里云 OSS、腾讯 COS、七牛 Kodo、华为 OBS、金山 KS3、又拍云 USS、OneDrive/SharePoint 以及通用 S3 驱动
- 可在配置中一键切换存储策略
- S3 兼容驱动默认 5GB 阈值触发 25MB 分片上传
- 支持 CDN/CNAME、加速域、PathStyle 以及预签名直传凭证
智能内容审查
- 接入腾讯云数据万象(COS CI)图片审核与标签服务
- 自动回填 AI 决策/标签/RequestId
- 结合错误码文档输出友好提示
- 配合人工复核双重保障
成员治理与配额
- 管理端"成员列表"支持查看头像/配额/点赞总数
- 可一键调整每日上传与总存储额度
- 支持切换管理员/用户/游客角色
访客互动能力
- 公共图库可配置访客点赞
- 支持访客token与最近点赞展示
- 可随时禁用访客互动功能
实时监控与邮件服务
- 系统运行状态监控与操作日志审计
- 集成邮件模板与验证码发送功能
- 默认预置阿里云邮局SMTP
📦 技术栈
后端技术
- 框架: Spring Boot 3.4.1
- 语言: Java 21
- 数据库: MySQL 5.7+/8.0
- 安全: Spring Security 6
- 文档: SpringDoc OpenAPI 3
- AI 审核 SDK: Tencent Cloud COS CI
- 构建: Maven Wrapper
前端技术
- 框架: Vue 3.5.24
- 构建: Vite 5.4.10
- 路由: Vue Router 4
- 状态管理: Pinia 3
- UI组件: Element Plus 2.8.6
- 样式: Tailwind CSS 3
- 图标: Lucide Vue, Element Plus Icons
📁 项目结构
astrnest/
├─ backend/ # Spring Boot 服务:REST API、鉴权、内容审查、API密钥管理
├─ frontend/ # Vue 3 + Vite 单页应用:仪表盘、上传中心、安全控制台、API集成
├─ storage/ # (运行时生成)本地存储目录,可通过配置改为OSS/COS
└─ AstrNest-docs/ # 项目文档(VitePress构建)💡 为什么选择 AstrNest?
AstrNest 不仅仅是一个图床系统,更是一个完整的内容治理平台:
- 企业级安全:从认证授权到内容审查,全方位保障数据安全
- 高度可扩展:支持多云存储,轻松应对业务增长
- 现代化体验:基于最新技术栈,提供流畅的用户体验
- 开源免费:GPL v3许可证,可自由使用和定制(需遵守开源协议)
- 活跃社区:持续更新,及时响应问题和需求
🌟 AstrNest与腾讯云SaaS生态深度融合
企业级SaaS平台定位
AstrNest是一个现代化的全栈图床与内容治理平台,采用SaaS(软件即服务)模式,为企业提供完整的图片管理解决方案。项目深度集成腾讯云SaaS生态,充分利用腾讯云在云计算、AI、存储等方面的技术优势。
与腾讯云SaaS的核心结合点
1. 腾讯云对象存储(COS)深度集成
- 原生COS驱动支持:AstrNest内置腾讯云COS存储驱动,支持一键切换存储策略
- 分片上传优化:针对大文件上传,默认5GB阈值触发25MB分片上传,提升上传稳定性
- CDN加速集成:支持腾讯云CDN加速域配置,实现全球内容分发
- 预签名直传:支持预签名直传凭证,减轻服务器压力,提升上传效率
2. 智能内容审查与腾讯云数据万象(COS CI)
- AI审核集成:深度集成腾讯云数据万象图片审核服务
- 多场景检测:支持鉴黄、鉴暴、广告识别、政治敏感内容等多维度审核
- 智能标签:自动识别图片内容并生成AI标签,便于内容管理
- 双重保障:AI自动审核 + 人工复核机制,确保内容安全
3. 腾讯云基础设施无缝对接
- 数据库兼容:支持腾讯云MySQL数据库服务,确保数据高可用
- 容器化部署:原生支持腾讯云容器服务(TKE)部署
- 监控集成:可与腾讯云监控服务对接,实现系统运行状态实时监控
核心竞争优势
技术架构先进性
- 现代化技术栈:Spring Boot 3.4.1 + Vue 3 + Vite 5全栈技术
- 微服务友好:前后端分离架构,便于微服务化改造
- API生态完善:完整的RESTful API体系,支持第三方集成
企业级功能特性
- 多租户支持:完善的用户权限管理体系,支持多组织使用
- 配额管理:灵活的存储配额和上传限制配置
- 操作审计:完整的操作日志记录,满足合规要求
多云存储策略
- 存储灵活性:支持本地存储 + 多种云存储服务商
- 一键切换:存储策略可动态切换,降低供应商锁定风险
- 成本优化:可根据业务需求选择最优存储方案
目标客户群体
- 中小企业:需要专业图片管理但预算有限的企业
- 内容平台:博客、论坛、社交媒体等需要图片托管服务
- 电商企业:商品图片管理和CDN加速需求
- 开发者:需要API集成的应用开发者
未来发展潜力
- AI能力增强:进一步集成腾讯云AI服务,如图像识别、内容生成等
- 边缘计算:结合腾讯云边缘计算,提升图片处理效率
- Serverless架构:向无服务器架构演进,降低运维成本
📦 技术架构
后端架构
Spring Boot 3.4.1
├── Spring Security 6 (认证授权)
├── Spring Data JPA (数据持久化)
├── SpringDoc OpenAPI 3 (API文档)
├── MySQL 5.7+/8.0 (数据库)
└── Maven Wrapper (构建工具)前端架构
Vue 3.5.24
├── Vite 5.4.10 (构建工具)
├── Vue Router 4 (路由管理)
├── Pinia 3 (状态管理)
├── Element Plus 2.8.6 (UI组件)
├── Tailwind CSS 3 (样式框架)
└── Lucide Vue (图标库)🎯 核心功能模块
1. 用户管理模块
- 用户注册与登录:支持用户名密码登录
- 个人资料管理:用户可以查看和修改个人信息
- 密码安全:支持密码修改和安全设置
- 登录历史:记录用户登录 IP 和时间信息
- 成员列表:管理后台提供暗色玻璃风"directory"视图
2. 图片上传与存储模块
- 多格式支持:支持常见图片格式(JPG、PNG、GIF、WEBP等)
- 批量上传:支持多文件同时上传
- 存储策略:可配置本地存储或云对象存储
- 上传限制:支持文件大小、类型、数量限制(默认20MB)
3. 内容管理模块
- 图片管理:用户可查看、删除、修改可见性
- 批量操作:支持批量删除图片
- 点赞功能:用户可对图片进行点赞
- 可见性控制:支持公开/私有图片设置
4. 安全管理模块
- 权限控制:基于角色的权限管理系统
- 内容审查:腾讯云AI自动检测和人工审核违规内容
- 域名白名单:控制图片引用域名
- API 密钥管理:支持 API 调用认证和配额管理
5. 系统管理模块
- 用户管理:管理员可管理用户角色和限制
- 系统配置:动态配置系统参数
- 监控统计:实时监控系统运行状态
- 操作日志:记录所有关键操作
6. 邮件服务模块
- 邮件模板:支持自定义邮件模板
- 验证码发送:集成邮件验证码功能
- 配置管理:灵活的邮件服务器配置
7. 公共图库模块
- 公共展示:支持公开图片的展示和浏览
- 点赞互动:会员/访客皆可点赞
- 实时反馈:弹窗展示最近点赞信息
- 分页浏览:支持大量图片的分页展示
🔌 API 接口概览
AstrNest 提供完整的 RESTful API 接口,涵盖以下主要功能:
用户门户接口 (User Portal)
- 用户概览信息获取
- 上传记录管理
- 个人资料管理
- 安全设置
安全管理员接口 (Security Admin)
- 内容安全策略管理
- 域名白名单管理
- 安全配置信息
API 密钥管理接口 (API Key)
- API 密钥创建和管理
- 配额设置和状态控制
- 密钥重置和删除
管理员接口 (Admin)
- 用户管理
- 上传记录管理
- 系统配置
- 邮件模板管理
上传接口 (Upload)
- 文件上传
- 文件获取
- 上传限制查询
公共图库接口 (Public Gallery)
- 公共图片浏览
- 点赞功能
- 用户信息展示
🛠️ 部署方式
开发环境部署
- 支持 Docker Compose 一键部署
- 提供传统部署方式
- 支持多种数据库配置
生产环境部署
- Docker 容器化部署
- 传统服务器部署
- 云平台部署支持
配置管理
- 环境变量配置
- 配置文件管理
- 动态配置更新
📊 性能指标
- 响应时间:平均响应时间 < 100ms
- 并发支持:支持 1000+ 并发用户
- 存储扩展:支持 TB 级别存储扩展
- 可用性:99.9% 服务可用性
🔄 版本更新
AstrNest 采用语义化版本控制,定期发布新版本:
- 主要版本:包含不兼容的 API 变更
- 次要版本:新增功能,向下兼容
- 修订版本:bug 修复,向下兼容
📄 许可证
AstrNest 采用 GNU General Public License v3 (GPL v3) 开源。
重要提示:
- 任何使用、修改、分发本代码的行为都必须遵守 GPL v3 协议
- 基于本项目的衍生作品必须同样以 GPL v3 协议开源
- 禁止将本代码用于闭源商业项目
- 禁止移除版权信息和许可声明
🚀 未来发展
- 图片压缩和格式转换功能
- 图片水印添加功能
- 图片批量处理工具
- 移动端应用开发
- 第三方登录集成
AstrNest - 现代化图床与内容治理平台
唯有青春与梦想不可辜负~!