Spring Boot+Nginx實現(xiàn)大文件下載功能
前言
相信很多小伙伴,在日常開放中都會遇到大文件下載的情況,大文件下載方式也有很多,比如非常流行的分片下載、斷點下載;當然也可以結(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); //設置URI給nginx進行內(nèi)部的跳轉(zhuǎn)/ngndownload response.setHeader("X-Accel-Redirect", "/downloadFile/" + yyyyMMdd + "/" + fileName ); } catch (IOException e) { e.printStackTrace(); } }
到此這篇關于Spring Boot結(jié)合Nginx實現(xiàn)大文件下載的文章就介紹到這了,更多相關Spring Boot Nginx大文件下載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java?注解@PostConstruct的原理及最佳使用場景分析
@PostConstruct?是?Java?中非常實用的注解,尤其是在?Spring?等框架中,它使得開發(fā)者可以方便地在?Bean?初始化后執(zhí)行額外的操作,本文給大家介紹@PostConstruct?的原理、使用場景及最佳實踐,感興趣的朋友一起看看吧2025-04-04Maven在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)建出高性能的后端服務,需要的朋友可以參考下2025-01-01SpringBoot DBUnit 單元測試(小結(jié))
這篇文章主要介紹了SpringBoot DBUnit 單元測試(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09