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大文件下载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java 注解@PostConstruct的原理及最佳使用场景分析
@PostConstruct 是 Java 中非常实用的注解,尤其是在 Spring 等框架中,它使得开发者可以方便地在 Bean 初始化后执行额外的操作,本文给大家介绍@PostConstruct 的原理、使用场景及最佳实践,感兴趣的朋友一起看看吧2025-04-04
Maven在Windows中的配置以及IDE中的项目创建实例
下面小编就为大家带来一篇Maven在Windows中的配置以及IDE中的项目创建实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-09-09
使用SpringBoot创建一个RESTful API的详细步骤
使用 Java 的 Spring Boot 创建 RESTful API 可以满足多种开发场景,它提供了快速开发、易于配置、可扩展、可维护的优点,尤其适合现代软件开发的需求,帮助你快速构建出高性能的后端服务,需要的朋友可以参考下2025-01-01


最新评论