|
# 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` 中添加回退逻辑。 |
|
|