refactor: reorganize modules and add Linux build tooling
This commit is contained in:
216
module/base/fts/README.md
Normal file
216
module/base/fts/README.md
Normal file
@@ -0,0 +1,216 @@
|
||||
# FTS - 文件传输服务
|
||||
|
||||
基于Go 1.26.5和Gin框架的现代化文件传输微服务
|
||||
|
||||
## 特性
|
||||
|
||||
- 🚀 **现代化架构**: 使用Go 1.26.5最新特性
|
||||
- 📁 **多存储支持**: 支持本地存储和MinIO对象存储
|
||||
- 🔧 **配置灵活**: 支持YAML配置文件,环境变量覆盖
|
||||
- 🏥 **健康检查**: 完整的健康检查和监控端点
|
||||
- 🔒 **安全性**: 文件类型检查,大小限制,JWT认证支持
|
||||
- 📊 **可观测性**: 完整的日志记录和错误追踪
|
||||
- 🐳 **容器化**: Docker和docker-compose开箱即用
|
||||
- 🛠️ **开发友好**: 完整的Makefile工具链
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 环境要求
|
||||
|
||||
- Go 1.26.5
|
||||
- PostgreSQL / MySQL (可选)
|
||||
- Redis (可选)
|
||||
- MinIO (可选,用于对象存储)
|
||||
|
||||
### 安装依赖
|
||||
|
||||
```bash
|
||||
make deps
|
||||
```
|
||||
|
||||
### 运行服务
|
||||
|
||||
```bash
|
||||
# 开发模式
|
||||
make dev
|
||||
|
||||
# 或构建后运行
|
||||
make build
|
||||
make run
|
||||
```
|
||||
|
||||
### 使用Docker
|
||||
|
||||
```bash
|
||||
# 启动完整环境(包括数据库、Redis等)
|
||||
docker-compose up -d
|
||||
|
||||
# 仅构建应用镜像
|
||||
make docker-build
|
||||
```
|
||||
|
||||
## API文档
|
||||
|
||||
### 健康检查
|
||||
|
||||
```http
|
||||
GET /health # 详细健康检查
|
||||
GET /health/simple # 简单健康检查
|
||||
GET /version # 版本信息
|
||||
```
|
||||
|
||||
### 文件操作
|
||||
|
||||
```http
|
||||
POST /fts/upload # 文件上传
|
||||
GET /fts/download # 文件下载
|
||||
```
|
||||
|
||||
## 配置说明
|
||||
|
||||
主要配置文件:`etc/fts_dev.yaml`
|
||||
|
||||
```yaml
|
||||
Service: fts
|
||||
Host: 0.0.0.0
|
||||
Port: 16290
|
||||
|
||||
# 数据库配置
|
||||
Databases:
|
||||
Driver: postgres
|
||||
Source:
|
||||
- "postgres://user:pass@localhost/fts?sslmode=disable"
|
||||
|
||||
# 缓存配置
|
||||
Cache: redis://localhost:6379/0
|
||||
|
||||
# 对象存储配置
|
||||
MinioOss:
|
||||
Site: http://localhost:9000
|
||||
Endpoint: localhost:9000
|
||||
AccessKeyId: minioadmin
|
||||
AccessKeySecret: minioadmin
|
||||
UseSSL: false
|
||||
|
||||
# 本地存储配置
|
||||
Local:
|
||||
Site: http://localhost:16290
|
||||
UploadDir: ./uploads/
|
||||
|
||||
# FTS特定配置
|
||||
FtsConfig:
|
||||
InputKey: file
|
||||
MaxSize: 5368709120 # 5GB
|
||||
Allows:
|
||||
- .jpg
|
||||
- .png
|
||||
- .pdf
|
||||
- .doc
|
||||
# ... 更多支持的文件类型
|
||||
```
|
||||
|
||||
## 开发工具
|
||||
|
||||
```bash
|
||||
# 查看所有可用命令
|
||||
make help
|
||||
|
||||
# 代码检查
|
||||
make lint
|
||||
|
||||
# 运行测试
|
||||
make test
|
||||
|
||||
# 安全扫描
|
||||
make security
|
||||
|
||||
# 格式化代码
|
||||
make fmt
|
||||
|
||||
# 更新依赖
|
||||
make mod-update
|
||||
```
|
||||
|
||||
## 构建和部署
|
||||
|
||||
```bash
|
||||
# 构建所有平台
|
||||
make build-all
|
||||
|
||||
# 构建Linux版本
|
||||
make build-linux
|
||||
|
||||
# 构建Windows版本
|
||||
make build-windows
|
||||
|
||||
# 构建macOS版本
|
||||
make build-darwin
|
||||
```
|
||||
|
||||
## 监控和运维
|
||||
|
||||
### 健康检查端点
|
||||
|
||||
- `GET /health` - 返回详细的服务状态,包括数据库、Redis、ETCD连接状态
|
||||
- `GET /health/simple` - 返回简单的服务状态
|
||||
- `HEAD /` - 快速健康检查
|
||||
|
||||
### 日志记录
|
||||
|
||||
服务支持结构化日志记录,日志级别可通过配置调整。
|
||||
|
||||
### 错误处理
|
||||
|
||||
统一的错误响应格式:
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 10001,
|
||||
"message": "错误描述",
|
||||
"trace_id": "request-trace-id"
|
||||
}
|
||||
```
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
fts/
|
||||
├── cmd/
|
||||
│ ├── cli/ # CLI工具
|
||||
│ └── main/ # 主服务入口
|
||||
├── internal/
|
||||
│ ├── config/ # 配置管理
|
||||
│ ├── errors/ # 错误定义
|
||||
│ ├── health/ # 健康检查
|
||||
│ ├── impl/ # 服务实现
|
||||
│ ├── logic/ # 业务逻辑
|
||||
│ ├── models/ # 数据模型
|
||||
│ ├── response/ # 响应处理
|
||||
│ └── routers/ # 路由定义
|
||||
├── etc/ # 配置文件
|
||||
├── scripts/ # 脚本文件
|
||||
├── test/ # 测试文件
|
||||
├── build/ # 构建输出
|
||||
├── Dockerfile # Docker镜像构建
|
||||
├── docker-compose.yml # Docker编排
|
||||
├── Makefile # 构建工具
|
||||
└── README.md # 项目文档
|
||||
```
|
||||
|
||||
## 贡献指南
|
||||
|
||||
1. Fork 项目
|
||||
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
|
||||
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
|
||||
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
||||
5. 打开 Pull Request
|
||||
|
||||
## 许可证
|
||||
|
||||
此项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
|
||||
|
||||
## 联系方式
|
||||
|
||||
- 项目主页: [GitHub仓库地址]
|
||||
- 问题反馈: [Issues页面]
|
||||
- 邮箱: [team@example.com]
|
||||
Reference in New Issue
Block a user