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整合websocket实现群聊思路代码详解
通过springboot引入websocket,实现群聊,通过在线websocket测试进行展示。本文重点给大家介绍springboot整合websocket实现群聊功能,代码超级简单,感兴趣的朋友跟随小编一起学习吧2021-05-05
SpringBoot3.0自定stater模块的操作流程(chatGPT提供的49种场景)
SpringBoot3.0发布等重磅陆消息续进入大家的视线,而本文作者将以技术整合的角度,带大家把最火的两个技术整合在一起,通过本文学习你将熟悉SpringBoot3.0自定stater模块的操作流程,并熟悉OpenAi为chatGPT提供的49种场景,感兴趣的朋友一起看看吧2022-12-12
IntelliJ IDEA 2019.1.1 for MAC 下载和注
这篇文章主要介绍了IntelliJ IDEA 2019.1.1 for MAC 下载和注册码激活,教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-04-04


最新评论