Spring Boot+Nginx实现大文件下载功能
更新时间:2024年05月23日 10:03:16 作者:珍朱(珠)奶茶
相信很多小伙伴,在日常开放中都会遇到大文件下载的情况,大文件下载方式也有很多,比如非常流行的分片下载、断点下载;当然也可以结合Nginx来实现大文件下载,在中小项目非常适合使用,这篇文章主要介绍了Spring Boot结合Nginx实现大文件下载,需要的朋友可以参考下
前言
相信很多小伙伴,在日常开放中都会遇到大文件下载的情况,大文件下载方式也有很多,比如非常流行的分片下载、断点下载;当然也可以结合Nginx来实现大文件下载,在中小项目非常适合使用。
Nginx配置
在nginx配置中,配置内部访问路径,使用 internal 来限制内部,配置如下:
server { location /downloadFile { alias 文件所在目录; internal; # 仅限内部调用 } }
Spring Boot下载
具体代码如下:
/** * * @param filePath 文件路径 * @param originalName 源文件名 * @param response */ @GetMapping("/downloadFile") public void downloadFile(String filePath, String originalName, HttpServletResponse response) { File file = new File("/upload/files/images/test/test.jpg"); String[] split = filePath.split("\\/"); String yyyyMMdd = split[2]; log.info(file.getPath()); try { String fileName = URLEncoder.encode(originalName, "UTF-8"); response.addHeader("Content-Disposition", "attachment;filename=" + fileName); //设置URI给nginx进行内部的跳转/ngndownload response.setHeader("X-Accel-Redirect", "/downloadFile/" + yyyyMMdd + "/" + fileName ); } catch (IOException e) { e.printStackTrace(); } }
到此这篇关于Spring Boot结合Nginx实现大文件下载的文章就介绍到这了,更多相关Spring Boot Nginx大文件下载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot 整合Redisson重写cacheName支持多参数的案例代码
这篇文章主要介绍了SpringBoot 整合Redisson重写cacheName支持多参数,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧2024-01-01一行命令同时修改maven项目中多个module的版本号的方法
这篇文章主要介绍了一行命令同时修改maven项目中多个module的版本号的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-06-06
最新评论