Spring Boot+Nginx實現(xiàn)大文件下載功能
前言
相信很多小伙伴,在日常開放中都會遇到大文件下載的情況,大文件下載方式也有很多,比如非常流行的分片下載、斷點下載;當(dāng)然也可以結(jié)合Nginx來實現(xiàn)大文件下載,在中小項目非常適合使用。
Nginx配置
在nginx配置中,配置內(nèi)部訪問路徑,使用 internal 來限制內(nèi)部,配置如下:
server {
location /downloadFile {
alias 文件所在目錄;
internal; # 僅限內(nèi)部調(diào)用
}
}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);
//設(shè)置URI給nginx進行內(nèi)部的跳轉(zhuǎn)/ngndownload
response.setHeader("X-Accel-Redirect", "/downloadFile/" + yyyyMMdd + "/" + fileName );
} catch (IOException e) {
e.printStackTrace();
}
}到此這篇關(guān)于Spring Boot結(jié)合Nginx實現(xiàn)大文件下載的文章就介紹到這了,更多相關(guān)Spring Boot Nginx大文件下載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java?注解@PostConstruct的原理及最佳使用場景分析
@PostConstruct?是?Java?中非常實用的注解,尤其是在?Spring?等框架中,它使得開發(fā)者可以方便地在?Bean?初始化后執(zhí)行額外的操作,本文給大家介紹@PostConstruct?的原理、使用場景及最佳實踐,感興趣的朋友一起看看吧2025-04-04
Maven在Windows中的配置以及IDE中的項目創(chuàng)建實例
下面小編就為大家?guī)硪黄狹aven在Windows中的配置以及IDE中的項目創(chuàng)建實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
使用SpringBoot創(chuàng)建一個RESTful API的詳細步驟
使用 Java 的 Spring Boot 創(chuàng)建 RESTful API 可以滿足多種開發(fā)場景,它提供了快速開發(fā)、易于配置、可擴展、可維護的優(yōu)點,尤其適合現(xiàn)代軟件開發(fā)的需求,幫助你快速構(gòu)建出高性能的后端服務(wù),需要的朋友可以參考下2025-01-01
SpringBoot DBUnit 單元測試(小結(jié))
這篇文章主要介紹了SpringBoot DBUnit 單元測試(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09

