圖解Springboot集成七牛云并實(shí)現(xiàn)圖片上傳功能過程
七牛云的使用
1、進(jìn)入官網(wǎng),注冊一個(gè)賬號
2、找到對象存儲
3、新建存儲空間
4、管理存儲空間
5、到此基本操作就完成了,接下來我們要在項(xiàng)目中使用
方式一:官方的幫助文檔,很詳細(xì):
步驟一:找到開發(fā)者中心
步驟二:選擇對象存儲
步驟三:找到Java的SDK
可以看到我們的官網(wǎng)非常詳細(xì)!
方式二:這里給大家封裝好了一個(gè)工具類,maven項(xiàng)目可以直接用
官網(wǎng)是靜態(tài)工具類,這里是注入到IOC容器當(dāng)中!
1、導(dǎo)入pom依賴
<dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>[7.7.0, 7.7.99]</version> </dependency>
2、工具類QiniuUtils
@Component public class QiniuUtils { public static final String url = "http://測試域名/"; //七牛云圖片服務(wù)器域名(有效1個(gè)月) @Value("${qiniu.accessKey}") private String accessKey; //類似賬號,在七牛云個(gè)人空間---密鑰管理獲取 @Value("${qiniu.accessSecretKey}") private String accessSecretKey; //類似密碼 public boolean upload(MultipartFile file, String fileName){ //構(gòu)造一個(gè)帶指定 Region 對象的配置類 Configuration cfg = new Configuration(Region.huabei()); //根據(jù)自己的對象空間的地址選(華為) //...其他參數(shù)參考類注釋 UploadManager uploadManager = new UploadManager(cfg); //...生成上傳憑證,然后準(zhǔn)備上傳 (個(gè)人存儲空間名字) String bucket = "個(gè)人存儲空間名字"; //默認(rèn)不指定key的情況下,以文件內(nèi)容的hash值作為文件名 try { byte[] uploadBytes = file.getBytes(); Auth auth = Auth.create(accessKey, accessSecretKey); String upToken = auth.uploadToken(bucket); Response response = uploadManager.put(uploadBytes, fileName, upToken); //解析上傳成功的結(jié)果 DefaultPutRet putRet = JSON.parseObject(response.bodyString(), DefaultPutRet.class); return true; } catch (Exception ex) { ex.printStackTrace(); } return false; } }
3、我們的兩個(gè)密鑰是配置在properties中,如下
4、還是在springboot的配置文件中
pringboot默認(rèn)只上傳1M的圖片大小所以修改文件配置
# 上傳文件總的最大值 spring.servlet.multipart.max-request-size=20MB # 單個(gè)文件的最大值 spring.servlet.multipart.max-file-size=2MB
5、使用QiniuUtils工具類
@RestController @RequestMapping("/upload") public class UploadController { @Autowired QiniuUtils qiniuUtils ; @PostMapping public Result upload(@RequestParam("image") MultipartFile file){ //原始文件名稱比如 aa.png String originalFilename = file.getOriginalFilename() ; //將原始名稱修改為:唯一文件名稱 String fileName = UUID.randomUUID().toString() + "." + StringUtils.substringAfterLast(originalFilename, "."); //上傳文件,上傳到哪呢?圖片服務(wù)器七牛云 //把圖片發(fā)放到距離圖片最近的服務(wù)器上,降低我們自身服務(wù)器的帶寬消耗 boolean upload = qiniuUtils.upload(file, fileName); if (upload){ //上傳成功 return Result.success(QiniuUtils.url+fileName) ; } return Result.fail(20001,"圖片 上傳失??!") ; } }
我們調(diào)用該接口給他一個(gè)文件就完成使用了,無論是網(wǎng)絡(luò)還是本地,都會保存在七牛云服務(wù)器當(dāng)中!
效果:上傳本地或網(wǎng)絡(luò)圖片,會生成一個(gè)唯一圖片在七牛云服務(wù)器中的地址!
結(jié)束
到此這篇關(guān)于圖解Springboot集成七牛云并實(shí)現(xiàn)圖片上傳功能過程的文章就介紹到這了,更多相關(guān)Springboot 集成七牛云內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java中stringbuffer線程安全分析實(shí)例詳解
在本篇文章里小編給大家整理的是一篇關(guān)于java中stringbuffer線程安全分析實(shí)例詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-01-01Spring中的@ExceptionHandler注解統(tǒng)一異常處理詳解
這篇文章主要介紹了Spring中的@ExceptionHandler注解統(tǒng)一異常處理詳解,當(dāng)我們使用這個(gè)@ExceptionHandler注解時(shí),定義一個(gè)異常的處理方法,加上@ExceptionHandler注解,這個(gè)方法就會處理類中其他方法拋出的異常,需要的朋友可以參考下2024-01-01Freemaker Replace函數(shù)的正則表達(dá)式運(yùn)用
這篇文章主要介紹了Freemaker Replace函數(shù)的正則表達(dá)式運(yùn)用 的相關(guān)資料,需要的朋友可以參考下2015-12-12MyBatis?Plus如何實(shí)現(xiàn)獲取自動生成主鍵值
這篇文章主要介紹了MyBatis?Plus如何實(shí)現(xiàn)獲取自動生成主鍵值問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09Java反射獲取所有Controller和RestController類的方法
這篇文章給大家分享了Java反射獲取所有Controller和RestController類的方法,文中有詳細(xì)的代碼示例講解,具有一定的參考價(jià)值,需要的朋友可以參考下2023-08-08Java編程學(xué)習(xí)的幾個(gè)典型實(shí)例詳解
這篇文章主要給大家介紹了Java編程學(xué)習(xí)的幾個(gè)典型實(shí)例,其中包括模擬酒店房間管理系統(tǒng)、螺旋矩陣 例或者百雞問題的變形等經(jīng)典實(shí)例,具體來一起看詳細(xì)內(nèi)容吧,需要的朋友可以參考學(xué)習(xí)。2017-02-02SpringBoot項(xiàng)目中的視圖解析器問題(兩種)
SpringBoot官網(wǎng)推薦使用HTML視圖解析器,但是根據(jù)個(gè)人的具體業(yè)務(wù)也有可能使用到JSP視圖解析器,所以本文介紹了兩種視圖解析器,感興趣的可以了解下2020-06-06