You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux服务器部署Shiny App使用fileInput上传大文件60秒超时如何解决

Shiny Server免费版大文件上传60秒超时问题解决方案

1 调整Shiny应用全局上传限制

你之前设置的options(shiny.maxRequestSize=500*1024^2)仅支持500M文件,要支持1G上传,需要将该参数调整为1G以上,且必须放在app.R文件的最顶部(server函数、ui函数定义之前,全局生效):

options(shiny.maxRequestSize = 1200 * 1024 ^ 2) # 预留冗余,设置为1.2G上限

2 修正Shiny Server配置的核心超时参数

你之前调整的app_init_timeout、app_idle_timeout都不控制文件上传阶段的超时,刚好60秒超时是因为Shiny Server默认的sockjs_timeout参数为60秒,该参数控制WebSocket传输的超时阈值,大文件上传时会被该参数截断。
编辑/etc/shiny-server/shiny-server.conf,在全局配置段(最顶部,不在server或location块内)添加以下参数:

sockjs_timeout 1800; # 调整为30分钟,可根据上传最大耗时自定义
client_max_body_size 1200M; # 匹配应用的上传大小限制,允许最大1.2G请求体

保存配置后重启Shiny Server服务生效:
systemctl restart shiny-server

3 排查反向代理层超时限制(如有)

如果你的Shiny Server前面配置了Nginx、Apache等反向代理服务,还需要同步调整代理层的请求超时、请求体大小限制:
以Nginx为例,需要在对应站点配置段添加:

client_max_body_size 1200M;
proxy_connect_timeout 1800;
proxy_send_timeout 1800;
proxy_read_timeout 1800;

重启Nginx生效。

4 验证运行用户权限与临时目录空间

Shiny Server部署的应用默认以shiny用户运行,需要确认:

  • 系统临时目录(默认/tmp)剩余空间大于1G,且shiny用户对该目录有读写权限
  • 如你自定义了Shiny临时目录,需确保目录权限与空间满足要求

内容的提问来源于stack exchange,提问作者SangeethaMani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 09:21:01