A newer version of the Gradio SDK is available:
5.40.0
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 流式下载文件到临时目录
配置要求
使用此修改后的代码需要:
- 安装
oss2
Python 包 - 配置以下环境变量:
OSS_ACCESS_KEY_ID
OSS_ACCESS_KEY_SECRET
OSS_ENDPOINT
OSS_BUCKET_NAME
向后兼容性
这些修改保持了 API 的兼容性,但改变了数据源。如果需要保持本地文件系统的支持,可以在 oss_utils.py
中添加回退逻辑。