项目概览¶
1103-OSS 是一个面向生产环境的对象存储系统,目标是 兼容 AWS S3 API,并提供可视化的 Web 管理控制台。
核心组件¶
- API 服务(Go)
- HTTP 框架:Gin
- 主要职责:S3 兼容 API、认证、Bucket/Object 管理、分片上传、审计日志
- Web 控制台(React)
- 构建工具:Vite
- 主要职责:管理 Bucket、对象、用户与凭证等
- PostgreSQL
- 主要职责:存储元数据(用户、Bucket、对象、凭证、审计日志等)
- Redis(可选/规划)
- 主要职责:缓存、会话/限流等(以当前仓库实际实现为准)
- 存储层(Local)
- 主要职责:对象数据落盘(默认使用宿主机/容器卷目录)
典型数据流¶
上传对象(PUT Object)¶
- 客户端使用 AWS Signature V4 进行签名
- API 侧验证签名、鉴权
- 将对象数据写入存储层
- 将元数据写入 PostgreSQL
下载对象(GET Object)¶
- 客户端请求对象
- API 侧鉴权
- 查询元数据并读取对象数据
- 将对象内容流式返回给客户端
项目结构(简化)¶
.
├── cmd/server/ # 主程序入口
├── internal/ # 核心业务实现
├── pkg/ # 公共组件/工具
├── web/ # 前端管理界面
├── deployments/ # Docker 部署配置
├── configs/ # 配置文件
└── scripts/ # 初始化/辅助脚本