Python版Shiny设置maxRequestSize实现大文件上传求助
在Python Shiny中调整大文件上传限制的方法
在Python版Shiny里,要支持30-50MB的大文件上传,可通过以下两种场景的配置实现,全程无需依赖R:
1. 本地开发/直接运行时配置
直接在启动应用的代码中,给shiny.run_app()传入max_upload_size参数,单位为字节。以50MB为例,换算后为50 * 1024 * 1024 = 52428800字节。
示例代码:
from shiny import App, ui app_ui = ui.page_fluid( ui.input_file("file_upload", "上传大文件", accept=".csv,.xlsx,.zip") ) def server(input, output, session): pass app = App(app_ui, server) if __name__ == "__main__": # 设置50MB的上传限制 shiny.run_app(app, max_upload_size=52428800)
2. 生产部署场景配置
如果通过shiny run命令启动应用,或者采用纯Python部署方案,可通过两种方式配置:
- 创建全局配置文件:在应用根目录新建
shiny_config.py,添加以下内容:
from shiny import config # 设置50MB上传限制 config.set_max_upload_size(52428800)
- 通过环境变量传递:启动应用前设置环境变量,再执行启动命令:
SHINY_MAX_UPLOAD_SIZE=52428800 shiny run app.py
额外注意事项
- Python Shiny底层基于Starlette/FastAPI,若单独配置了服务器的请求大小限制,会覆盖Shiny的配置,需确保两者一致。
- 测试时建议用略小于设定值的文件验证,避免因网络传输的额外数据开销导致上传被拦截。
内容的提问来源于stack exchange,提问作者Mostly Harmless
相关产品推荐
相关产品推荐

