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