Files
tokens-reef/deploy/docs-backup/MODULE_10_SORA.md
Developer 349d783fd1 refactor: clean up project structure
- Remove old review reports (keep latest only)
- Move docs/ to deploy/docs-backup/
- Move performance-testing/ to deploy/
- Clean up test output files
- Organize root directory
2026-04-06 23:36:03 +08:00

82 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Sub2API 模块分析报告Sora与媒体服务模块
## 1. 模块概述
### 1.1 模块定位
Sora与媒体服务模块是Sub2API的视频生成和媒体管理核心负责接入OpenAI Sora视频生成服务提供视频生成、媒体存储、播放等功能。
### 1.2 核心职责
- **Sora视频生成**调用Sora API生成视频
- **媒体存储**:管理生成的视频文件
- **播放服务**:提供视频播放和下载
## 2. 代码结构分析
### 2.1 核心文件
| 文件路径 | 职责 |
|---------|------|
| `handler/sora_gateway_handler.go` | Sora网关处理 |
| `handler/sora_client_handler.go` | Sora客户端API |
| `service/sora_gateway_service.go` | Sora网关服务 |
| `service/sora_media_storage.go` | 媒体存储服务 |
| `service/sora_s3_storage.go` | S3存储服务 |
## 3. 功能详细分析
### 3.1 视频生成流程
```go
// service/sora_gateway_service.go - GenerateVideo
func (s *SoraGatewayService) GenerateVideo(ctx context.Context, req *SoraRequest) (*SoraResponse, error) {
// 1. 验证请求
if err := s.validateRequest(req); err != nil {
return nil, err
}
// 2. 获取Sora账号
account := s.selectAccount(req.GroupID)
if account == nil {
return nil, ErrNoAccountAvailable
}
// 3. 调用Sora API
response, err := s.callSoraAPI(ctx, account, req)
if err != nil {
return nil, err
}
// 4. 返回结果
return &SoraResponse{
VideoID: response.VideoID,
Status: response.Status,
DownloadURL: s.getDownloadURL(response.VideoID),
}, nil
}
```
### 3.2 媒体存储
```go
// service/sora_media_storage.go
type MediaStorage interface {
Upload(ctx context.Context, key string, data []byte, contentType string) error
Download(ctx context.Context, key string) ([]byte, error)
GetURL(ctx context.Context, key string, expiry time.Duration) (string, error)
Delete(ctx context.Context, key string) error
}
// 支持本地存储、S3兼容存储
```
## 4. 总结
Sora模块特点
- **视频生成**支持Sora API调用
- **多种存储**支持本地和S3存储
- **URL签名**支持带签名的播放URL
---
*文档版本1.0*
*分析基于Sub2API v0.1.104*