Closed AirboZH closed 1 year ago
建议不要在这里转换成 SequenceInputStream,这里会把文件内容完整拷贝到 byte 数组中。请参考:
这又是需要统计长度的,可能要通过分段上传方式才不会oom
谢谢@JohnNiang @longjuan 两位的帮助。经排查,SequenceInputStream 在读取流的时候会递归调用read(byte[], int, int)方法,所以在大量递归调用后就会造成SOE。
参考@JohnNiang AliOss后解决了这个问题。
测试后发现100M文件可以上传,但是JVM内存占用也会特别大,将流全部读到内存还是有很大问题,再大的文件会存在 @longjuan 说的OOM问题,计划采用分片上传的方案。
再次感谢两位~
log: