Spring Boot+Nginx實現(xiàn)大文件下載功能
前言
相信很多小伙伴,在日常開放中都會遇到大文件下載的情況,大文件下載方式也有很多,比如非常流行的分片下載、斷點下載;當然也可以結合Nginx來實現(xiàn)大文件下載,在中小項目非常適合使用。
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實現(xiàn)大文件下載的文章就介紹到這了,更多相關Spring Boot Nginx大文件下載內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
springboot整合websocket實現(xiàn)群聊思路代碼詳解
通過springboot引入websocket,實現(xiàn)群聊,通過在線websocket測試進行展示。本文重點給大家介紹springboot整合websocket實現(xiàn)群聊功能,代碼超級簡單,感興趣的朋友跟隨小編一起學習吧2021-05-05
SpringBoot3.0自定stater模塊的操作流程(chatGPT提供的49種場景)
SpringBoot3.0發(fā)布等重磅陸消息續(xù)進入大家的視線,而本文作者將以技術整合的角度,帶大家把最火的兩個技術整合在一起,通過本文學習你將熟悉SpringBoot3.0自定stater模塊的操作流程,并熟悉OpenAi為chatGPT提供的49種場景,感興趣的朋友一起看看吧2022-12-12
Java中基于maven實現(xiàn)zxing二維碼功能
這篇文章主要介紹了Java中基于maven實現(xiàn)zxing二維碼功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02
IntelliJ IDEA 2019.1.1 for MAC 下載和注
這篇文章主要介紹了IntelliJ IDEA 2019.1.1 for MAC 下載和注冊碼激活,教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04

