Closed strongyc closed 7 months ago
打断点看看吧,我没遇到过,话说minio应该提供了访问url,直接根据url下载就好了
你这个代码是将文件输出到 response 中,也可能是中间的代理,如Nginx或其它什么对大小做了限制也说不准,你可以尝试将文件直接下载到本地,看看能不能正常下载
byte[] bytes = fileStorageService.download(fileInfo).bytes();
IoUtil.write(response.getOutputStream(), true, bytes);
还有你的这两行代码,会将整个文件下载到内存中,再输出到 response ,也可能是你的内存不足
byte[] bytes = fileStorageService.download(fileInfo).bytes(); IoUtil.write(response.getOutputStream(), true, bytes);
还有你的这两行代码,会将整个文件下载到内存中,再输出到 response ,也可能是你的内存不足
有什么好的办法可以解决吗?
byte[] bytes = fileStorageService.download(fileInfo).bytes(); IoUtil.write(response.getOutputStream(), true, bytes);
还有你的这两行代码,会将整个文件下载到内存中,再输出到 response ,也可能是你的内存不足
有什么好的办法可以解决吗?
改成这样
try (ServletOutputStream out = response.getOutputStream()) {
fileStorageService.download(fileInfo).outputStream(out);
} catch (IOException e) {
throw new RuntimeException(e);
}
byte[] bytes = fileStorageService.download(fileInfo).bytes(); IoUtil.write(response.getOutputStream(), true, bytes);
还有你的这两行代码,会将整个文件下载到内存中,再输出到 response ,也可能是你的内存不足
有什么好的办法可以解决吗?
改成这样
fileStorageService.download(fileInfo).outputStream(response.getOutputStream());
这个下载需要手动关闭文件流嘛?还是框架会自动处理?感谢解答
byte[] bytes = fileStorageService.download(fileInfo).bytes(); IoUtil.write(response.getOutputStream(), true, bytes);
还有你的这两行代码,会将整个文件下载到内存中,再输出到 response ,也可能是你的内存不足
有什么好的办法可以解决吗?
改成这样
fileStorageService.download(fileInfo).outputStream(response.getOutputStream());
这个下载需要手动关闭文件流嘛?还是框架会自动处理?感谢解答
改成这样
try (ServletOutputStream out = response.getOutputStream()) {
fileStorageService.download(fileInfo).outputStream(out);
} catch (IOException e) {
throw new RuntimeException(e);
}
byte[] bytes = fileStorageService.download(fileInfo).bytes(); IoUtil.write(response.getOutputStream(), true, bytes);
还有你的这两行代码,会将整个文件下载到内存中,再输出到 response ,也可能是你的内存不足
有什么好的办法可以解决吗?
改成这样
fileStorageService.download(fileInfo).outputStream(response.getOutputStream());
这个下载需要手动关闭文件流嘛?还是框架会自动处理?感谢解答
改成这样
try (ServletOutputStream out = response.getOutputStream()) { fileStorageService.download(fileInfo).outputStream(out); } catch (IOException e) { throw new RuntimeException(e); }
感谢,我尝试下~
byte[] bytes = fileStorageService.download(fileInfo).bytes(); IoUtil.write(response.getOutputStream(), true, bytes);
还有你的这两行代码,会将整个文件下载到内存中,再输出到 response ,也可能是你的内存不足
有什么好的办法可以解决吗?
改成这样
fileStorageService.download(fileInfo).outputStream(response.getOutputStream());
这个下载需要手动关闭文件流嘛?还是框架会自动处理?感谢解答
改成这样
try (ServletOutputStream out = response.getOutputStream()) { fileStorageService.download(fileInfo).outputStream(out); } catch (IOException e) { throw new RuntimeException(e); }
感谢,我尝试下~
感谢,现在下载正常了呢~
下载小文件可以下载,下载超过600M文件浏览器直接卡主,使用原生minio下载则无此问题,这是怎么回事呢 // response.setHeader("Access-Control-Allow-Origin", "*"); // response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileInfo.getOriginalFilename(), "UTF-8")); // response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); // response.setContentType(fileInfo.getObjectType()); // response.setCharacterEncoding("UTF-8"); // byte[] bytes = fileStorageService.download(fileInfo).bytes(); // IoUtil.write(response.getOutputStream(), true, bytes);