SpringBoot集成七牛云OSS的示例詳解
一、OSS?
1,什么是OSS?
「OSS」的英文全稱是Object Storage Service,翻譯成中文就是「對(duì)象存儲(chǔ)服務(wù)」,官方一點(diǎn)解釋就是對(duì)象存儲(chǔ)是一種使用HTTP API存儲(chǔ)和檢索非結(jié)構(gòu)化數(shù)據(jù)和元數(shù)據(jù)對(duì)象的工具。
白話文解釋就是將系統(tǒng)所要用的文件上傳到云硬盤上,該云硬盤提供了文件下載、上傳等一列服務(wù),這樣的服務(wù)以及技術(shù)可以統(tǒng)稱為OSS,業(yè)內(nèi)提供OSS服務(wù)的廠商很多,知名常用且成規(guī)模的藍(lán)隊(duì)云等。
2,OSS相關(guān)的術(shù)語
1).存儲(chǔ)空間(Bucket)
存儲(chǔ)空間是您用于存儲(chǔ)對(duì)象(Object)的容器,所有的對(duì)象都必須隸屬于某個(gè)存儲(chǔ)空間。
2).對(duì)象/文件(Object)
對(duì)象是 OSS 存儲(chǔ)數(shù)據(jù)的基本單元,也被稱為OSS的文件。對(duì)象由元信息(Object Meta)、用戶數(shù)據(jù)(Data)和文件名(Key)組成。對(duì)象由存儲(chǔ)空間內(nèi)部唯一的Key來標(biāo)識(shí)。
3).地域(Region)
地域表示 OSS 的數(shù)據(jù)中心所在物理位置。您可以根據(jù)費(fèi)用、請(qǐng)求來源等綜合選擇數(shù)據(jù)存儲(chǔ)的地域。詳情請(qǐng)查看OSS已經(jīng)開通的Region。
4).訪問域名(Endpoint)
Endpoint 表示OSS對(duì)外服務(wù)的訪問域名。OSS以HTTP RESTful API的形式對(duì)外提供服務(wù),當(dāng)訪問不同地域的時(shí)候,需要不同的域名。通過內(nèi)網(wǎng)和外網(wǎng)訪問同一個(gè)地域所需要的域名也是不同的。具體的內(nèi)容請(qǐng)參見各個(gè)Region對(duì)應(yīng)的Endpoint。
5).訪問密鑰(AccessKey)
AccessKey,簡稱 AK,指的是訪問身份驗(yàn)證中用到的AccessKeyId 和AccessKeySecret。OSS通過使用AccessKeyId 和AccessKeySecret對(duì)稱加密的方法來驗(yàn)證某個(gè)請(qǐng)求的發(fā)送者身份。AccessKeyId用于標(biāo)識(shí)用戶,AccessKeySecret是用戶用于加密簽名字符串和OSS用來驗(yàn)證簽名字符串的密鑰,其中AccessKeySecret 必須保密。
3,為什么需要OSS?
? 因?yàn)槿绻褕D片視頻等文件上傳到自己的應(yīng)用的Web服務(wù)器,在讀取圖片的時(shí)候會(huì)占用比較多的資源。影響應(yīng)用服務(wù)器的性能。
? 所以我們一般使用OSS(Object Storage Service對(duì)象存儲(chǔ)服務(wù))存儲(chǔ)圖片或視頻。
二、注冊(cè)七牛云
注冊(cè)完可以白嫖
三. 七牛云的存儲(chǔ)空間的創(chuàng)建
登錄認(rèn)證點(diǎn)擊新建存儲(chǔ)空間
進(jìn)入控制臺(tái),新建存儲(chǔ)空間,自定義存儲(chǔ)空間名稱bucket,填寫完信息點(diǎn)擊確定即可,這里選用華南地區(qū)
四、Spring Boot集成七牛云demo
1,在pom.xml中添加maven依賴
<dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>[7.13.0, 7.13.99]</version> </dependency>
2, 編寫yml配置文件
oss: # 配置accessKey xxaccessKey: **** # 配置secretKey xxsecretKey: **** # 配置空間名稱 xxbucket: ****
accessKey和secretKey在密鑰管理中查詢
3,測(cè)試demo代碼
@Component @SpringBootTest /*@ConfigurationProperties(prefix = "oss")//指定讀取application.yml文件的oss屬性的數(shù)據(jù)*/ public class OSSTest { //注意要從application.yml讀取屬性數(shù)據(jù),下面的3個(gè)成員變量的名字必須對(duì)應(yīng)application.yml的myoss屬性的三個(gè)子屬性名字 private String xxaccessKey; private String xxsecretKey; private String xxbucket; public void setXxaccessKey(String xxaccessKey) { this.xxaccessKey = xxaccessKey; } public void setXxsecretKey(String xxsecretKey) { this.xxsecretKey = xxsecretKey; } public void setXxbucket(String xxbucket) { this.xxbucket = xxbucket; } @Test public void testOss(){ //構(gòu)造一個(gè)帶指定 Region 對(duì)象的配置類。你的七牛云OSS創(chuàng)建的是哪個(gè)區(qū)域的,那么就調(diào)用Region的什么方法即可 Configuration cfg = new Configuration(Region.huanan()); cfg.resumableUploadAPIVersion = Configuration.ResumableUploadAPIVersion.V2;// 指定分片上傳版本 UploadManager uploadManager = new UploadManager(cfg); //文件名,如果寫成null的話,就以文件內(nèi)容的hash值作為文件名 String key = null; try { //byte[] uploadBytes = "hello qiniu cloud".getBytes("utf-8"); //ByteArrayInputStream byteInputStream=new ByteArrayInputStream(uploadBytes); //上面兩行是官方寫的(注釋掉),下面那幾行是我們寫的 InputStream xxinputStream = new FileInputStream("C:\\Users\\Eliauk\\Downloads\\Desktop\\OIP-C.jpg"); Auth auth = Auth.create(xxaccessKey, xxsecretKey); String upToken = auth.uploadToken(xxbucket); try { Response response = uploadManager.put(xxinputStream,key,upToken,null, null); //解析上傳成功的結(jié)果 DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class); System.out.println("上傳成功! 生成的key是: "+putRet.key); System.out.println("上傳成功! 生成的hash是: "+putRet.hash); } catch (QiniuException ex) { Response r = ex.response; System.err.println(r.toString()); try { System.err.println(r.bodyString()); } catch (QiniuException ex2) { //ignore } } }catch (Exception e) { //ignore } } }
4,結(jié)果展示
上傳的圖片
在oss上顯示
以上是springboot使用七牛云OSS的示例,可以根據(jù)自己的實(shí)際需求進(jìn)行調(diào)整。
到此這篇關(guān)于SpringBoot集成七牛云OSS的示例詳解的文章就介紹到這了,更多相關(guān)SpringBoot集成七牛云OSS內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot使用阿里OSS實(shí)現(xiàn)文件云存儲(chǔ)的方法
- springboot操作阿里云OSS實(shí)現(xiàn)文件上傳,下載,刪除功能
- springBoot接入阿里云oss的實(shí)現(xiàn)步驟
- SpringBoot整合阿里云OSS對(duì)象存儲(chǔ)服務(wù)實(shí)現(xiàn)文件上傳
- Springboot集成阿里云OSS上傳文件系統(tǒng)教程
- springboot工程如何使用阿里云OSS傳輸文件
- springBoot中的CORS跨域注解@CrossOrigin詳解
- springboot+vue實(shí)現(xiàn)oss文件存儲(chǔ)的示例代碼
相關(guān)文章
怎么把本地jar包放入本地maven倉庫和遠(yuǎn)程私服倉庫
這篇文章主要介紹了怎么把本地jar包放入本地maven倉庫和遠(yuǎn)程私服倉庫的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06關(guān)于Synchronized和ReentranLock的區(qū)別及說明
文章介紹了Java中的`synchronized`關(guān)鍵字和`ReentrantLock`類,兩者都可以用于解決多線程同步問題,但`ReentrantLock`提供了更多的功能和靈活性2024-12-12mybatis plus自動(dòng)生成代碼tinyint(1)自動(dòng)轉(zhuǎn)換為Boolean的問題及解決
這篇文章主要介紹了mybatis plus自動(dòng)生成代碼tinyint(1)自動(dòng)轉(zhuǎn)換為Boolean的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08IDEA創(chuàng)建Maven工程Servlet的詳細(xì)教程
這篇文章主要介紹了IDEA創(chuàng)建Maven工程Servlet的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10mybatis引用其他文件中的sql片段的實(shí)現(xiàn)
Mybatis中也是支持引用其他Mapper文件中的SQL片段的,本文就來介紹一下如何使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03JavaWeb?使用DBUtils實(shí)現(xiàn)增刪改查方式
這篇文章主要介紹了JavaWeb?使用DBUtils實(shí)現(xiàn)增刪改查方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12SpringMVC實(shí)現(xiàn)文件上傳下載的全過程
對(duì)于上傳功能,我們?cè)陧?xiàng)目中是經(jīng)常會(huì)用到的,比如用戶注冊(cè)的時(shí)候,上傳用戶頭像,這個(gè)時(shí)候就會(huì)使用到上傳的功能,而對(duì)于下載使用場(chǎng)景也很常見,下面這篇文章主要給大家介紹了關(guān)于SpringMVC實(shí)現(xiàn)文件上傳下載的相關(guān)資料,需要的朋友可以參考下2022-01-01mybatis中mapper.xml文件的常用屬性及標(biāo)簽講解
這篇文章主要介紹了mybatis中mapper.xml文件的常用屬性及標(biāo)簽講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09