跳转至

项目概览

1103-OSS 是一个面向生产环境的对象存储系统,目标是 兼容 AWS S3 API,并提供可视化的 Web 管理控制台。

核心组件

  • API 服务(Go)
  • HTTP 框架:Gin
  • 主要职责:S3 兼容 API、认证、Bucket/Object 管理、分片上传、审计日志
  • Web 控制台(React)
  • 构建工具:Vite
  • 主要职责:管理 Bucket、对象、用户与凭证等
  • PostgreSQL
  • 主要职责:存储元数据(用户、Bucket、对象、凭证、审计日志等)
  • Redis(可选/规划)
  • 主要职责:缓存、会话/限流等(以当前仓库实际实现为准)
  • 存储层(Local)
  • 主要职责:对象数据落盘(默认使用宿主机/容器卷目录)

典型数据流

上传对象(PUT Object)

  1. 客户端使用 AWS Signature V4 进行签名
  2. API 侧验证签名、鉴权
  3. 将对象数据写入存储层
  4. 将元数据写入 PostgreSQL

下载对象(GET Object)

  1. 客户端请求对象
  2. API 侧鉴权
  3. 查询元数据并读取对象数据
  4. 将对象内容流式返回给客户端

项目结构(简化)

.
├── cmd/server/          # 主程序入口
├── internal/            # 核心业务实现
├── pkg/                 # 公共组件/工具
├── web/                 # 前端管理界面
├── deployments/         # Docker 部署配置
├── configs/             # 配置文件
└── scripts/             # 初始化/辅助脚本