File size: 2,300 Bytes
2bad007
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# OSS 集成修改总结

## 修改内容

### 1. 新增文件

- **oss_utils.py**: 新建的 OSS 工具模块,包含:
  - OSS 客户端初始化
  - 文件列表获取 (`list_oss_files`)
  - 文件下载 (`download_oss_file`) 
  - 文件存在检查 (`oss_file_exists`)
  - 临时目录管理 (`get_user_tmp_dir`, `cleanup_user_tmp_dir`)

- **.env.example**: OSS 环境变量配置示例

### 2. 修改的文件

#### simulation.py
- **导入 OSS 模块**: 添加了 `oss_utils` 的导入
- **重写 `stream_simulation_results` 函数**:
  - 支持从 OSS 读取图像文件
  - 使用用户会话级别的临时目录
  - 改进的错误处理和日志记录
- **重写 `create_video_segment` 函数**:
  - 使用用户特定的临时目录
  - 更好的目录管理
- **新增 `process_remaining_oss_images` 函数**:
  - 处理 OSS 上剩余的图像文件
- **改进 `convert_to_h264` 函数**:
  - 更好的 ffmpeg 路径查找
  - 改进的错误处理

#### app.py  
- **导入 OSS 模块**: 添加了 `oss_utils` 相关导入
- **重写 `run_simulation` 函数**:
  - 不再检查本地目录是否存在
  - 从 OSS 下载最终视频文件
  - 使用临时目录管理
- **更新 `cleanup_session` 函数**:
  - 添加了用户临时目录清理

#### requirements.txt
- **添加 OSS 依赖**: `oss2>=2.15.0`

#### README.md
- **完全重写**: 添加了 OSS 配置说明和使用指南

## 主要变化

### 1. 数据源变更
- **之前**: 从本地文件系统读取图像和视频
- **现在**: 从阿里云 OSS 读取数据

### 2. 临时文件管理
- **之前**: 使用固定的系统目录
- **现在**: 为每个用户会话创建独立的临时目录

### 3. 错误处理
- **之前**: 基本的错误处理
- **现在**: 更全面的错误处理和日志记录

### 4. 文件下载
- **之前**: 直接读取本地文件
- **现在**: 从 OSS 流式下载文件到临时目录

## 配置要求

使用此修改后的代码需要:

1. 安装 `oss2` Python 包
2. 配置以下环境变量:
   - `OSS_ACCESS_KEY_ID`
   - `OSS_ACCESS_KEY_SECRET` 
   - `OSS_ENDPOINT`
   - `OSS_BUCKET_NAME`

## 向后兼容性

这些修改保持了 API 的兼容性,但改变了数据源。如果需要保持本地文件系统的支持,可以在 `oss_utils.py` 中添加回退逻辑。