大家好,我是小富~
技術(shù)交流,公眾號(hào):程序員小富又是做好人好事的一天,有個(gè)小可愛私下問我有沒有好用的
springboot文件上傳工具,這不巧了嘛,正好我私藏了一個(gè)好東西,順便給小伙伴們也分享一下,demo地址放在文末了 。
文章插圖
文件上傳在平常不過的一個(gè)功能,做后端開發(fā)的基本都會(huì)接觸到,雖然不難可著實(shí)有點(diǎn)繁瑣 。數(shù)據(jù)流的開閉、讀取還容易出錯(cuò),尤其是在對(duì)接一些
OSS對(duì)象存儲(chǔ)平臺(tái),一個(gè)平臺(tái)一堆SDK代碼看起來亂糟糟的 。下邊給我大家推薦一個(gè)工具
Spring File Storage,上傳文件只要些許配置一行代碼搞定,開發(fā)效率杠杠的,一起看看是不是有這么流批!官網(wǎng):https://spring-file-storage.xuyanwu.cn
Spring File Storage工具幾乎整合了市面上所有的OSS對(duì)象存儲(chǔ)平臺(tái),包括本地、FTP、SFTP、WebDAV、阿里云OSS、華為云OBS、七牛云Kodo、騰訊云COS、百度云 BOS、又拍云USS、MinIO、京東云 OSS、網(wǎng)易數(shù)帆 NOS等其它兼容 S3 協(xié)議的平臺(tái),只要在springboot中通過極簡(jiǎn)的方式就可以實(shí)現(xiàn)文件存儲(chǔ) 。
文章插圖
簡(jiǎn)單配置下邊以本地和Aliyun OSS上傳為例,
pom.xml中引入必要的spring-file-storage.jar,注意: 如果要上傳文件到OSS平臺(tái),需要引入對(duì)應(yīng)平臺(tái)的SDK包 。【Springboot 一行代碼實(shí)現(xiàn)文件上傳 20個(gè)平臺(tái)!少寫代碼到極致】
<!-- spring-file-storage 必須要引入 --><dependency><groupId>cn.xuyanwu</groupId><artifactId>spring-file-storage</artifactId><version>0.5.0</version></dependency><!-- 阿里云oss --><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2</version></dependency>application.yml文件中配置些基礎(chǔ)信息 。enable-storage:只有狀態(tài)開啟才會(huì)被識(shí)別到default-platform:默認(rèn)的上傳平臺(tái)domain:生成的文件url中訪問的域名base-path:存儲(chǔ)地址thumbnail-suffix:縮略圖后綴
aliyun oss提供的變量配置到相應(yīng)的模塊上即可 。spring:#文件存儲(chǔ)配置(本地、oss)file-storage:default-platform: local-1thumbnail-suffix: ".min.jpg" #縮略圖后綴local:- platform: local-1 # 存儲(chǔ)平臺(tái)標(biāo)識(shí)enable-storage: true #是否開啟本存儲(chǔ)(只能選一種)enable-access: true #啟用訪問(線上請(qǐng)使用 Nginx 配置,效率更高)domain: "http://127.0.0.1:2222" #訪問域名,注意后面要和path-patterns保持一致,“/”結(jié)尾base-path: /tmp/Pictures/ # 存儲(chǔ)地址path-patterns: /** #訪問路徑aliyun-oss:- platform: aliyun-ossenable-storage: trueaccess-key: xxxxsecret-key: xxxxend-point: xxxbucket-name: firebookdomain: http://fire100.topbase-path: #云平臺(tái)文件路徑springboot啟動(dòng)類中增加注解@EnableFileStorage,顯式的開啟文件上傳功能,到這就可以用了@EnableFileStorage // 文件上傳工具@SpringBootApplicationpublic class SpringbootFileStorageApplication {public static void main(String[] args) {SpringApplication.run(SpringbootFileStorageApplication.class, args);}}上傳文件接下來在業(yè)務(wù)類中引入FileStorageService服務(wù),如下只要一行代碼就可以完成文件上傳,是不是So easy,下載也是如法炮制 。
經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀
- SpringBoot內(nèi)置工具類,告別瞎寫工具類了
- 【高并發(fā)】深度解析ScheduledThreadPoolExecutor類的源代碼
- 之四 2流高手速成記:SpringBoot整合redis及mongodb
- Springboot JSON 轉(zhuǎn)換:Jackson篇
- SpringBoot整合ES+Kibana
- 前端圖形:SVG與Canvas
- SpringBoot框架SpEL表達(dá)式注入漏洞復(fù)現(xiàn)與原理分析
- Typora設(shè)置代碼塊Mac風(fēng)格三個(gè)圓點(diǎn)
- 手寫自定義springboot-starter,感受框架的魅力和原理
- 一 JPA入門學(xué)習(xí)集合springboot
