日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程

瀏覽:246日期:2023-08-19 17:12:52

從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程

1. 前言

文件服務(wù)器是一個(gè)應(yīng)用必要的組件之一。最早我搞過(guò)FTP,然后又用過(guò)FastDFS,接私活的時(shí)候我用MongoDB也湊合湊合?,F(xiàn)如今時(shí)代不同了,開(kāi)始流行起了OSS。

Gitee: https://gitee.com/felord/kono day06 分支 歡迎Star

GitHub: https://github.com/NotFound403/kono day06 分支 歡迎Star

2. 什么是OSS

全稱為Object Storage Service,也叫對(duì)象存儲(chǔ)服務(wù),是一種解決和處理離散單元的方法,可提供基于分布式系統(tǒng)之上的對(duì)象形式的數(shù)據(jù)存儲(chǔ)服務(wù),具有可拓展、可管理、低成本等特點(diǎn),支持中心和邊緣存儲(chǔ),能夠?qū)崿F(xiàn)存儲(chǔ)需求的彈性伸縮,主要應(yīng)用于海量數(shù)據(jù)管理的各類場(chǎng)景。

這概念真是夠難以理解的。簡(jiǎn)單說(shuō)點(diǎn)我知道的吧,平常我們的文件地址都是 /User/felord/video/xxx.mp4的目錄樹(shù)結(jié)構(gòu),系統(tǒng)先要找到User,然后一級(jí)一級(jí)往下找一直到目標(biāo)為止,這是一種結(jié)構(gòu)化的存儲(chǔ)方式。對(duì)象存儲(chǔ)就不一樣了,所有的文件都放在一個(gè)特定的池子里,只不過(guò)文件的攜帶有它自己的元信息,通過(guò)元信息去檢索文件。這里舉一個(gè)形象的例子:

{'oss':[ {'file':'xxxxx','meta':{'id':'1111'},'type':''}, {'content':'xxxxx','meta':{'id':'1211'},'type':'','created':'','name':''}, ]}

上圖的oss就是一個(gè)對(duì)象存儲(chǔ),它里面存了攜帶信息不一樣、甚至結(jié)構(gòu)都不一樣的東西,我們可以根據(jù)其元信息meta檢索它們。OSS具有以下特點(diǎn):

效率更高。不受復(fù)雜目錄系統(tǒng)對(duì)性能的影響。 可擴(kuò)展性更強(qiáng)。 分布式架構(gòu),更便于進(jìn)行水平擴(kuò)展,從而容納進(jìn)任意大規(guī)模的數(shù)據(jù)。 可用性更強(qiáng)。 數(shù)據(jù)一般都會(huì)有多個(gè)位于不同機(jī)器的復(fù)制,確保數(shù)據(jù)不丟失。 平臺(tái)無(wú)關(guān),可以通過(guò)Restful接口進(jìn)行操作對(duì)象。

OSS通常被用來(lái)存儲(chǔ)圖片、音視頻等文件,以及對(duì)這些文件的處理。

3. 哪些OSS可以使用

通常我們有兩種選擇,花錢買或者自己搞。

充錢才能變得更強(qiáng)

這句話這里也是很實(shí)用的,目前幾乎所有的云廠商都有自己的對(duì)象存儲(chǔ)產(chǎn)品,你可以對(duì)比一下花錢購(gòu)買它們,通過(guò)配合CDN能達(dá)到非常好的用戶體驗(yàn),胖哥的felord.cn就使用了云廠商的對(duì)象存儲(chǔ)。購(gòu)買他們的服務(wù)

可靠性強(qiáng),數(shù)據(jù)丟失可能性低。 免維護(hù),不需要自行維護(hù)。 可配合其它一些特色功能,比如縮略圖、CDN等等。

自己動(dòng)手豐衣足食

不想花錢就只能自己動(dòng)手了,目前我知道的開(kāi)源方案有兩種。

一種是Ceph,一個(gè)分布式存儲(chǔ)系統(tǒng),高可用,高擴(kuò)展性。但是一般人玩不轉(zhuǎn),就連開(kāi)源中國(guó)的紅薯都被坑慘了😆。

從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程

另一種是Minio,用Golang寫的。我目前還沒(méi)發(fā)現(xiàn)有什么坑,文檔居然還有中文文檔!我用Docker不到三分鐘就玩起來(lái)了,居然還自帶控制臺(tái)!其它功能也挺齊全,各種客戶端SDK齊全。

從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程

因?yàn)榘惭b過(guò)于簡(jiǎn)單就不演示了。

4. 整合到Spring Boot

無(wú)論你花錢還是自己搞都可以,這兩種方式各有各的好處。所以我要把這兩種方式整合到kono Spring Boot腳手架項(xiàng)目中。這種組件封裝成為Spring Boot Starter再好不過(guò)了。在日常開(kāi)發(fā)中這種基礎(chǔ)組件都建議做成Starter。參考我的 最強(qiáng)自定義Spring Boot Starter教程里的方式,我將aliyun的OSS SDK和Minio SDK封裝成Starter了。

達(dá)到了開(kāi)箱即用。而且非常靈活,你配置哪種使用哪種,可以二選一,也可以全都要,還可以全都不要。

項(xiàng)目地址: https://gitee.com/felord/oss-spring-boot.git。

獲取到項(xiàng)目后通過(guò)Maven命令mvn install安裝到本地依賴庫(kù),或者你發(fā)布到你的遠(yuǎn)程私有Maven倉(cāng)庫(kù)。然后再引用Starter,切記先后步驟:

<!-- 一定要先拉取項(xiàng)目通過(guò) mvn install 安裝到本地 --><dependency> <groupId>cn.felord</groupId> <artifactId>oss-spring-boot-starter</artifactId> <version>1.0.0.RELEASE</version></dependency>

Minio配置流程

接著就是使用了,先在你Minio的控制臺(tái)上創(chuàng)建一個(gè)bucket,可以理解為一個(gè)對(duì)象池。

從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程

然后把策略設(shè)置為可讀寫。

從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程

從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程

搞完開(kāi)始在項(xiàng)目中配置,application.yaml中:

oss: minio: # 啟用 active: true access-key: minio_access_key secret-key: felord_cn_sec_key # minio 地址 endpoint: http://localhost:9000

aliyun OSS 配置流程

額外引入依賴:

<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>2.5.0</version></dependency><dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.3.8</version></dependency>

這是必須的步驟。

去ali OSS控制臺(tái)申請(qǐng)跟Minio差不多的幾樣?xùn)|西用來(lái)配置:

oss: aliyun: active: true access-key-id: LTAI4GH4EQXtKEbJDrADvWNH access-key-secret: XjDpNn5JqHAHPDXGL6xIebyUkyFAZ7 endpoint: oss-cn-beijing.aliyuncs.com

Starter的使用

以下是我對(duì)OSS操作的抽象接口:

package cn.felord.oss;import java.io.InputStream;/** * The interface Storage. * * @author felord.cn * @since 2020 /8/24 19:54 */public interface Storage { /** * 存放對(duì)象 * * @param bucketName bucket 名稱 * @param objectName 自定義對(duì)象名稱 * @param inputStream 對(duì)象的輸入流 * @param contentType 參考http 的 MimeType 值 * @throws Exception the exception */ void putObject(String bucketName, String objectName, InputStream inputStream, String contentType) throws Exception; /** * 獲取對(duì)象 * * @param bucketName the bucket name * @param objectName the object name * @return the object */ InputStream getObject(String bucketName, String objectName) throws Exception; /** * 獲取對(duì)象的URL * * @param bucketName the bucket name * @param objectName the object name * @return the object url */ String getObjectUrl(String bucketName, String objectName) throws Exception; /** * 刪除對(duì)象 * * @param bucketName the bucket name * @param objectName the object name */ void removeObject(String bucketName, String objectName) throws Exception;}

然后分別使用了以上兩種OSS進(jìn)行了實(shí)現(xiàn)。

從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程

并分別以aliyunStorage、minioStorage為名稱將AliyunStorage和MinioStorage注入Spring IoC。

使用起來(lái)非常簡(jiǎn)單:

@Autowired@Qualifier('minioStorage')Storage storage;@Testpublic void testOss() throws Exception { File file = new File('./456.jpg'); InputStream inputStream = new FileInputStream(file); storage.putObject('img','pic_122',inputStream, MimeTypeUtils.IMAGE_JPEG_VALUE);}

5. 總結(jié)

今天的整合與往常不太一樣,主要是一些通用功能的組件化封裝的實(shí)際演示,另外簡(jiǎn)單描述了對(duì)象存儲(chǔ)的功能和使用場(chǎng)景,希望對(duì)你有用。

到此這篇關(guān)于從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程的文章就介紹到這了,更多相關(guān)Spring Boot整合OSS文件服務(wù)器內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产福利资源一区| 蜜桃视频第一区免费观看| 中文字幕成人| 日韩精品一页| 青青国产精品| 欧美精品不卡| 国产精选在线| 99热精品久久| 国产精品社区| 日产欧产美韩系列久久99| 日精品一区二区三区| 日本不卡一区二区三区| 欧美欧美黄在线二区| 精品国产亚洲一区二区三区大结局 | 久久爱www.| 久久三级毛片| 精品在线91| 88久久精品| 91亚洲一区| 亚洲欧美日韩精品一区二区| 日本在线视频一区二区| 国产劲爆久久| 成人av动漫在线观看| 日韩一区二区三区在线看| 日本一二区不卡| 亚洲综合另类| av中文字幕在线观看第一页 | 国产视频一区二| 亚洲免费专区| 成人台湾亚洲精品一区二区| 1024精品久久久久久久久| 日韩激情中文字幕| 999久久久亚洲| 国产日产高清欧美一区二区三区| 91看片一区| 国产精品www.| 亚洲婷婷丁香| 狠狠爱成人网| 国产一区日韩| 久久久蜜桃一区二区人| 免费av一区二区三区四区| 天堂精品久久久久| 91精品观看| 日韩av片子| 久久激情五月婷婷| 美女精品在线| 欧美一级二区| 亚洲一区亚洲| 国产网站在线| bbw在线视频| 国产精品二区不卡| 日韩激情一二三区| 日韩和的一区二在线| 国产精品免费99久久久| 亚洲一区二区三区高清不卡| 日韩av中文字幕一区二区三区| 日韩在线观看不卡| 伊人久久在线| 日韩免费久久| 电影亚洲精品噜噜在线观看| 国产精品毛片久久久| 久久午夜精品| 中文字幕日韩欧美精品高清在线| 久久av一区二区三区| 国内一区二区三区| 国产一区二区三区四区五区传媒 | 国产高清视频一区二区| 中文字幕亚洲精品乱码| 丝袜国产日韩另类美女| 中文字幕一区二区精品区| 色婷婷成人网| 麻豆精品在线观看| 国产黄大片在线观看| 日韩高清中文字幕一区二区| 亚洲二区视频| 少妇精品久久久一区二区| 日本va欧美va瓶| 国产精品久久国产愉拍| 福利片在线一区二区| 免费污视频在线一区| 99视频一区| 亚洲日韩视频| 欧美激情99| 久久久久久美女精品| 久久香蕉精品| 在线看片日韩| 久久中文字幕一区二区三区| 日韩在线二区| 亚洲精品一级二级三级| 久久精品系列| 一区三区视频| 久久久久九九精品影院| 久久久国产亚洲精品| 中文字幕一区二区三区四区久久 | 亚洲深夜福利在线观看| 麻豆国产91在线播放| 天堂√8在线中文| 日韩精品国产欧美| 久久久人人人| 麻豆国产精品视频| 性一交一乱一区二区洋洋av| 麻豆一区二区在线| 日韩一区精品视频| 欧美成人a交片免费看| 久久黄色影视| 亚洲麻豆一区| 极品裸体白嫩激情啪啪国产精品| 日韩av一区二区三区| 欧美日韩视频| 91精品xxx在线观看| 免费在线日韩av| 美女精品网站| 亚洲天堂久久| 国产91在线播放精品| 日韩中文字幕| 黄色免费成人| 日韩三级久久| 美女尤物久久精品| 欧美特黄a级高清免费大片a级| 精品国产午夜肉伦伦影院| 日本在线视频一区二区| 国产精品毛片在线| 亚洲精品一二三区区别| 播放一区二区| a日韩av网址| 亚洲va中文在线播放免费| 国产精品欧美三级在线观看| 日韩午夜视频在线| 亚洲精品动态| 亚洲理论在线| 日韩精品久久久久久| 日韩精品一页| 国产精品igao视频网网址不卡日韩 | 久久最新视频| 亚洲精品观看| 日产欧产美韩系列久久99| 欧美视频久久| 国产福利亚洲| 日韩欧美二区| 久久夜色精品| 国产亚洲高清在线观看| 精品视频亚洲| 欧美色图国产精品| 中文字幕一区二区三区四区久久| 亚洲精品少妇| 国产精品一区二区三区美女| 国产精品极品在线观看| 蜜桃视频在线观看一区| 青草综合视频| 日韩欧美精品综合| 亚洲一区二区毛片| 国产精品麻豆成人av电影艾秋| 国产精品v亚洲精品v日韩精品| 精品国产一区二区三区性色av| 91精品久久久久久久久久不卡| 中文日韩在线| 麻豆91在线播放| 亚洲激情婷婷| 欧美极品一区二区三区| 欧洲精品一区二区三区| 亚洲人成毛片在线播放女女| 久久字幕精品一区| 日韩午夜免费| 久久精品亚洲| 亚洲乱亚洲高清| 999精品在线| 精品亚洲成人| 一二三区精品| 成人日韩在线观看| 国产亚洲久久| 视频一区欧美精品| 电影天堂国产精品| 久久亚洲黄色| 久久国产生活片100| 亚洲一区二区动漫| 久久久噜噜噜| 国产一区二区三区四区二区 | 久久91视频| 三级久久三级久久久| 国产精品久久久免费| 久久久五月天| 欧美日韩尤物久久| 国产日韩视频在线| 水蜜桃久久夜色精品一区的特点| 国产一区二区久久久久| 国产精品一区二区三区美女 | 亚洲精选久久| 亚洲有吗中文字幕| 视频一区二区国产| 先锋影音国产一区| 老鸭窝毛片一区二区三区| 国产伊人精品| 欧美日韩国产在线观看网站 | 欧美啪啪一区| 国产毛片久久久| 91成人福利| 国产精品传媒麻豆hd| 国产日韩欧美一区二区三区在线观看| 亚洲免费福利一区| 欧美日韩亚洲一区在线观看|