3.4 KiB
3.4 KiB
文件上传超时配置说明
修改内容
移除了文件上传的超时限制,并增加了文件大小限制,允许大文件(如软件安装包)上传完成而不会因超时或大小限制中断。
前端修改
修改位置
platform/src/api/file.js 中的 uploadFile 函数
修改详情
修改前
const config = {
url: "/platform/uploadfile",
method: "post",
data: formData,
timeout: 2 * 60 * 60 * 1000, // 2小时超时
};
修改后
const config = {
url: "/platform/uploadfile",
method: "post",
data: formData,
timeout: 0, // 不设置超时时间,等待文件上传完毕
};
后端修改
1. 文件大小限制调整
修改位置
go/controllers/platform_file.go
修改详情
修改前
const fileUploadMaxMB = 200 // 200MB
const fileUploadMaxBytes = fileUploadMaxMB * 1024 * 1024
修改后
const fileUploadMaxMB = 2048 // 2GB,适用于大型软件安装包
const fileUploadMaxBytes = fileUploadMaxMB * 1024 * 1024
2. 服务器超时配置
修改位置
go/conf/app.conf
新增配置
# 服务器超时配置(支持大文件上传)
# 0 表示不设置超时限制
ServerTimeOut = 0
# 最大请求体大小(字节),0 表示不限制
MaxMemory = 0
影响范围
此修改影响所有使用 uploadFile 函数的文件上传功能,包括但不限于:
- 软件升级安装包上传 (
platform/src/views/platform/softwareupgrade/components/edit.vue) - 文件管理器上传 (
platform/src/views/system/fileManager/index.vue) - 其他调用
uploadFileAPI 的组件
技术说明
前端
timeout: 0在 axios 中表示不设置超时限制- 上传进度仍然会正常显示(通过
onUploadProgress回调) - 用户可以随时取消上传操作
后端
- 文件大小限制从 200MB 提升到 2GB
ServerTimeOut = 0表示服务器不设置请求超时MaxMemory = 0表示不限制请求体大小- 适用于大文件(如软件安装包)的上传场景
CORS 问题说明
如果遇到 CORS 错误,请确认:
- 后端
go/routers/router.go中已配置 CORS 中间件 - 允许的请求头包含
Authorization - 生产环境中,需要将
Access-Control-Allow-Origin设置为具体的前端域名
当前配置:
ctx.Output.Header("Access-Control-Allow-Origin", "*")
ctx.Output.Header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, PATCH, OPTIONS")
ctx.Output.Header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization")
注意事项
- 修改后需要重启 Go 后端服务才能生效
- 对于超大文件(>2GB),建议考虑使用分片上传或断点续传机制
- 生产环境建议配置 Nginx 等反向代理的超时和大小限制
- 监控服务器磁盘空间,确保有足够空间存储大文件
相关文件
前端
platform/src/api/file.js- 文件上传 APIplatform/src/utils/request.js- axios 请求配置platform/src/views/platform/softwareupgrade/components/edit.vue- 软件升级上传组件
后端
go/controllers/platform_file.go- 文件上传控制器go/conf/app.conf- 服务器配置go/routers/router.go- CORS 配置
修改日期
2026-04-09