一、该问题的重现步骤是什么?
部署服务到 docker容器中,正常运行各个服务。
1. 外网访问项目,浏览器打开新增数据页面,上传文件,分别可以上传 小文件和大文件 查看返回情况,下面是上传大文件(视频10M左右)的情况
2. 正常的小文件,是可以正常上传的
3.本地启动微服务,不管文件多大 都能正常上传
二、你期待的结果是什么?实际看到的又是什么?
我期待的 是几十M的文件能够正常上传,实际是 上传大于2M左右以上的文件,就不能正常得到 上传后的 路径, 但是不管上传的文件 多大 ,minio中 是已经正常保存了 上传的文件。
下面是minio上传后文件:
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
前端使用的是 Saber 。后端是Bladex 2.7,,运行在Linux 环境centos7 系统中,通过 docker 部署的
四、请提供详细的错误堆栈信息,这很重要。
后端 docker web-nginx打印的日志
Saber 网页上的 信息:
代码部分:
后端:
Saber前端:
五、若有更多详细信息,请在下面提供。
这个传文件是先传到 blade-resource微服务(java),然后再由微服务传到Minio。
然后saber的设置中有超时时间,微服务也有自动熔断的时间,这样传文件。文件一大一定会超时报错。
也不可能无限制的把超时时间拉长。
所以如果你用minio的话,我建议使用如下方案:
先向微服务请求一个预签名上传文件url,同时服务端写库一条标记文件状态是“预签名未上传”,并把文件id、预签名上传文件url(presignedPutObjectUrl)一并返回
前端使用预签名上传文件url(presignedPutObjectUrl)直传minio
传完了,再调用一个验证接口;使用文件id,让微服务验证文件在minio中是否存在,如果存在,把文件表状态改为 “正常”
我们公司目前正在用的是这个方案,可以供你参考
找一下springboot相关配置,加大文件上传限制就可以了
感觉 应该不是 springboot的配置问题,我看服务器打印的日志,是返回成功的,数据也保存到 minio中了,
这是上传 调用的服务接口打印信息:
================ Response Start ================
===Result=== {"code":200,"success":true,"data":{"link":"http://xxxxxx:9000/advert-video/upload/20210315/3925922514ed7981836bd33a19848ac1.mp4","domain":"http://xxxxx.85:9000/advert-video","name":"upload/20210315/3925922514ed7981836bd33a19848ac1.mp4","originalName":"44038776262390443.mp4","attachId":null},"msg":"鎿嶄綔鎴愬姛"}
<=== POST: /advert/put-file (12869 ms)
================ Response End ================
前端收不到 返回的data 数据:
怎么采用分片啊, 就算再调大配置,也有上线,应该采用一点一点的上传吧
扫一扫访问 Blade技术社区 移动端