问题
扩展数据的上传和字段检测接口都直接执行 await file.read(),没有字节数、行数或解析资源限制。
相关代码:
backend/app/api/ext_data.py:490-515
backend/app/api/ext_data.py:728-750
影响
上传很大的 CSV/XLSX 文件时,服务会先将整个文件读入内存,再交给 Polars/Excel 解析,可能造成高内存占用、进程 OOM 或服务不可用。现有自选股 OCR 上传已有 12 MB 限制,但扩展上传没有统一上限。
期望
上传入口在读取和解析前拒绝超过上限的文件,并对解析行数/列数或请求体大小设置合理边界。
建议
抽取统一的 multipart 文件大小检查,采用分块写入临时文件;增加超限测试。
检查基线:origin/main / 0eb3e54(2026-08-24)。
问题
扩展数据的上传和字段检测接口都直接执行
await file.read(),没有字节数、行数或解析资源限制。相关代码:
backend/app/api/ext_data.py:490-515backend/app/api/ext_data.py:728-750影响
上传很大的 CSV/XLSX 文件时,服务会先将整个文件读入内存,再交给 Polars/Excel 解析,可能造成高内存占用、进程 OOM 或服务不可用。现有自选股 OCR 上传已有 12 MB 限制,但扩展上传没有统一上限。
期望
上传入口在读取和解析前拒绝超过上限的文件,并对解析行数/列数或请求体大小设置合理边界。
建议
抽取统一的 multipart 文件大小检查,采用分块写入临时文件;增加超限测试。
检查基线:
origin/main/0eb3e54(2026-08-24)。