使用st.file_uploader上传大文件异常:2GB以上文件上传失败求助
解决Streamlit
st.file_uploader 大文件上传报错问题 可能的原因及对应解决办法
后端服务请求大小限制:仅改Streamlit的
maxUploadSize不够,底层服务器(如Tornado)还有独立限制。打开~/.streamlit/config.toml配置文件,补充以下内容:[server] maxUploadSize = 10240 # 单位MB,对应10GB maxMessageSize = 10240要是用Nginx这类反向代理,还要在Nginx配置里加
client_max_body_size 10G;,避免网关层拦截大文件。内存资源不足:Streamlit默认在内存中处理上传文件,大文件直接占满内存会导致崩溃。在配置文件里开启磁盘缓存:
[server] fileUploaderMemoryLimit = 0 # 0表示自动将大文件转存磁盘,不占用内存同时检查服务器可用内存,内存不够就升级配置,或者考虑分块上传大文件。
版本兼容性bug:旧版Streamlit的
st.file_uploader对大文件处理有缺陷,直接升级到最新稳定版:pip install --upgrade streamlit前端超时限制:大文件上传耗时久,会触发浏览器或前端的默认超时。在配置文件里延长超时时间:
[server] timeout = 3600 # 单位秒,设置1小时超时
测试建议
- 先拿2.5GB左右的文件测试,逐步验证配置是否生效;
- 启动Streamlit时加调试日志,查看具体报错信息定位问题:
streamlit run your_app.py --log-level debug
内容的提问来源于stack exchange,提问作者serdar_bay
相关产品推荐
相关产品推荐

