圖解Springboot集成七牛云并實(shí)現(xiàn)圖片上傳功能過(guò)程
七牛云的使用
1、進(jìn)入官網(wǎng),注冊(cè)一個(gè)賬號(hào)

2、找到對(duì)象存儲(chǔ)

3、新建存儲(chǔ)空間

4、管理存儲(chǔ)空間

5、到此基本操作就完成了,接下來(lái)我們要在項(xiàng)目中使用
方式一:官方的幫助文檔,很詳細(xì):
步驟一:找到開(kāi)發(fā)者中心

步驟二:選擇對(duì)象存儲(chǔ)

步驟三:找到Java的SDK
可以看到我們的官網(wǎng)非常詳細(xì)!

方式二:這里給大家封裝好了一個(gè)工具類(lèi),maven項(xiàng)目可以直接用
官網(wǎng)是靜態(tài)工具類(lèi),這里是注入到IOC容器當(dāng)中!
1、導(dǎo)入pom依賴(lài)
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>[7.7.0, 7.7.99]</version>
</dependency>
2、工具類(lèi)QiniuUtils
@Component
public class QiniuUtils {
public static final String url = "http://測(cè)試域名/"; //七牛云圖片服務(wù)器域名(有效1個(gè)月)
@Value("${qiniu.accessKey}")
private String accessKey; //類(lèi)似賬號(hào),在七牛云個(gè)人空間---密鑰管理獲取
@Value("${qiniu.accessSecretKey}")
private String accessSecretKey; //類(lèi)似密碼
public boolean upload(MultipartFile file, String fileName){
//構(gòu)造一個(gè)帶指定 Region 對(duì)象的配置類(lèi)
Configuration cfg = new Configuration(Region.huabei()); //根據(jù)自己的對(duì)象空間的地址選(華為)
//...其他參數(shù)參考類(lèi)注釋
UploadManager uploadManager = new UploadManager(cfg);
//...生成上傳憑證,然后準(zhǔn)備上傳 (個(gè)人存儲(chǔ)空間名字)
String bucket = "個(gè)人存儲(chǔ)空間名字";
//默認(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工具類(lèi)
@RestController
@RequestMapping("/upload")
public class UploadController {
@Autowired
QiniuUtils qiniuUtils ;
@PostMapping
public Result upload(@RequestParam("image") MultipartFile file){
//原始文件名稱(chēng)比如 aa.png
String originalFilename = file.getOriginalFilename() ;
//將原始名稱(chēng)修改為:唯一文件名稱(chēng)
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ú)論是網(wǎng)絡(luò)還是本地,都會(huì)保存在七牛云服務(wù)器當(dāng)中!

效果:上傳本地或網(wǎng)絡(luò)圖片,會(huì)生成一個(gè)唯一圖片在七牛云服務(wù)器中的地址!

結(jié)束
到此這篇關(guān)于圖解Springboot集成七牛云并實(shí)現(xiàn)圖片上傳功能過(guò)程的文章就介紹到這了,更多相關(guān)Springboot 集成七牛云內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)DES加密與解密,md5加密以及Java實(shí)現(xiàn)MD5加密解密類(lèi)
這篇文章主要介紹了Java實(shí)現(xiàn)DES加密與解密,md5加密以及Java實(shí)現(xiàn)MD5加密解密類(lèi) ,需要的朋友可以參考下2015-11-11
java復(fù)制文件和java移動(dòng)文件的示例分享
本文主要介紹了java將文件夾下面的所有的jar文件拷貝到指定的文件夾下面的方法,需要的朋友可以參考下2014-02-02
詳解springmvc控制登錄用戶(hù)session失效后跳轉(zhuǎn)登錄頁(yè)面
本篇文章主要介紹了springmvc控制登錄用戶(hù)session失效后跳轉(zhuǎn)登錄頁(yè)面,session一旦失效就需要重新登陸,有興趣的同學(xué)可以了解一下。2017-01-01
Spring與Dubbo搭建一個(gè)簡(jiǎn)單的分布式詳情
這篇文章主要介紹了Spring與Dubbo搭建一個(gè)簡(jiǎn)單的分布式詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
springboot配置logback日志管理過(guò)程詳解
這篇文章主要介紹了springboot配置logback日志管理過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09

