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

您的位置:首頁技術文章
文章詳情頁

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

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

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

1. 前言

文件服務器是一個應用必要的組件之一。最早我搞過FTP,然后又用過FastDFS,接私活的時候我用MongoDB也湊合湊合。現如今時代不同了,開始流行起了OSS。

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

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

2. 什么是OSS

全稱為Object Storage Service,也叫對象存儲服務,是一種解決和處理離散單元的方法,可提供基于分布式系統之上的對象形式的數據存儲服務,具有可拓展、可管理、低成本等特點,支持中心和邊緣存儲,能夠實現存儲需求的彈性伸縮,主要應用于海量數據管理的各類場景。

這概念真是夠難以理解的。簡單說點我知道的吧,平常我們的文件地址都是 /User/felord/video/xxx.mp4的目錄樹結構,系統先要找到User,然后一級一級往下找一直到目標為止,這是一種結構化的存儲方式。對象存儲就不一樣了,所有的文件都放在一個特定的池子里,只不過文件的攜帶有它自己的元信息,通過元信息去檢索文件。這里舉一個形象的例子:

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

上圖的oss就是一個對象存儲,它里面存了攜帶信息不一樣、甚至結構都不一樣的東西,我們可以根據其元信息meta檢索它們。OSS具有以下特點:

效率更高。不受復雜目錄系統對性能的影響。 可擴展性更強。 分布式架構,更便于進行水平擴展,從而容納進任意大規模的數據。 可用性更強。 數據一般都會有多個位于不同機器的復制,確保數據不丟失。 平臺無關,可以通過Restful接口進行操作對象。

OSS通常被用來存儲圖片、音視頻等文件,以及對這些文件的處理。

3. 哪些OSS可以使用

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

充錢才能變得更強

這句話這里也是很實用的,目前幾乎所有的云廠商都有自己的對象存儲產品,你可以對比一下花錢購買它們,通過配合CDN能達到非常好的用戶體驗,胖哥的felord.cn就使用了云廠商的對象存儲。購買他們的服務

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

自己動手豐衣足食

不想花錢就只能自己動手了,目前我知道的開源方案有兩種。

一種是Ceph,一個分布式存儲系統,高可用,高擴展性。但是一般人玩不轉,就連開源中國的紅薯都被坑慘了😆。

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

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

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

因為安裝過于簡單就不演示了。

4. 整合到Spring Boot

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

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

項目地址: https://gitee.com/felord/oss-spring-boot.git。

獲取到項目后通過Maven命令mvn install安裝到本地依賴庫,或者你發布到你的遠程私有Maven倉庫。然后再引用Starter,切記先后步驟:

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

Minio配置流程

接著就是使用了,先在你Minio的控制臺上創建一個bucket,可以理解為一個對象池。

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

然后把策略設置為可讀寫。

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

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

搞完開始在項目中配置,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控制臺申請跟Minio差不多的幾樣東西用來配置:

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

Starter的使用

以下是我對OSS操作的抽象接口:

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

然后分別使用了以上兩種OSS進行了實現。

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

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

使用起來非常簡單:

@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. 總結

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

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

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲激情五月| 久久高清免费| 国产精品亚洲人成在99www| 亚洲综合色婷婷在线观看| 国产精品4hu.www| 欧美日韩一区二区三区不卡视频 | 麻豆成人91精品二区三区| 伊人影院久久| 亚洲+小说+欧美+激情+另类| 日日夜夜免费精品| 亚州av乱码久久精品蜜桃| 日本不卡免费高清视频在线| 国产欧美日韩视频在线| 亚洲三级网站| 精品精品国产三级a∨在线| 国产a久久精品一区二区三区| 中文字幕在线看片| 爽好久久久欧美精品| 久久久777| 欧美日韩一区二区三区在线电影| 视频一区日韩| 国产黄色精品| 91一区二区三区四区| 99热国内精品| 视频一区国产视频| 在线日韩电影| 一本大道色婷婷在线| 日韩另类视频| 97精品在线| 亚洲天堂av资源在线观看| 天堂久久一区| 一区二区精品伦理...| 中文在线免费视频| 亚洲先锋成人| 日韩一区三区| 日本不卡一区二区| 亚洲视频电影在线| 丝袜美腿诱惑一区二区三区 | 久久久久久久久成人| 亚洲一区二区三区高清不卡| 亚洲1区在线| 久久精品国产久精国产爱| 一区在线免费| 免费在线观看一区| 亚洲欧美综合| 一级欧美视频| 亚洲福利精品| 国产精品普通话对白| 91久久久久| 国产精品一级| 日韩精品社区| 午夜免费一区| 男人的天堂久久精品| 亚洲免费播放| 国产高清精品二区| 日本中文字幕一区二区| 亚洲午夜一级| 黄色不卡一区| 四虎884aa成人精品最新| 卡一卡二国产精品| 欧美综合精品| 久久只有精品| 久久国际精品| 日本午夜精品视频在线观看| 免费精品国产| 国产999精品在线观看| 91日韩欧美| 影音先锋久久精品| 亚洲欧美久久| 亚洲成人三区| 欧美日韩va| 国产成人精品一区二区免费看京 | 中文字幕一区二区三区四区久久 | 国产午夜精品一区二区三区欧美 | 在线日韩欧美| 欧美日韩激情在线一区二区三区| 国产日韩欧美| 日韩制服丝袜先锋影音| 91国内精品| 日韩一区精品| 伊人久久婷婷| 亚洲成av人片一区二区密柚| 国产精品流白浆在线观看| 国产婷婷精品| 宅男噜噜噜66国产日韩在线观看| 日韩天堂在线| 成人亚洲一区| 国产精品天堂蜜av在线播放| 亚洲影视一区二区三区| 欧美资源在线| 蜜桃视频一区二区三区| 日韩在线观看一区二区| 久久国产福利| 日韩av网站在线观看| 亚洲资源网站| 国产精品分类| 麻豆mv在线观看| 国产综合精品| 蜜桃av一区二区| 日韩动漫一区| 久久久久黄色| 日韩av二区| 久久国产直播| 亚洲香蕉久久| 精品国产一区二区三区性色av| 黄色网一区二区| 欧美日韩国产亚洲一区| 亚洲一区二区三区无吗| 国产精品一区二区99| 久久精品国产www456c0m| 日韩欧美激情| 国产一二在线播放| 日本欧美韩国一区三区| 午夜视频精品| 久久性天堂网| 啪啪国产精品| 精品亚洲二区| 久久久久伊人| 国模精品一区| 日韩精品国产精品| 久久免费黄色| 天堂av一区| 亚洲在线免费| 99久久精品网| 激情视频一区二区三区| 国内精品麻豆美女在线播放视频| 免费日韩av| 首页国产精品| 日韩高清在线观看一区二区| 精品亚洲美女网站| 美女高潮久久久| 亚洲欧美网站在线观看| 亚洲电影在线一区二区三区| 日韩精品免费一区二区三区| 国产一区二区三区久久| 欧美精品91| 国产成人免费| 日本免费一区二区三区四区| 中文在线免费视频| 国产色播av在线| 亚洲调教视频在线观看| 国产精品人人爽人人做我的可爱| 麻豆网站免费在线观看| а√天堂8资源在线| 超碰超碰人人人人精品| 亚洲欧美一区在线| 久久精品资源| 国产精品亚洲欧美日韩一区在线| 亚洲一区激情| 国产在线不卡一区二区三区| 国产精品国产三级在线观看| 黄色欧美日韩| 天堂av在线一区| 热久久国产精品| 四虎4545www国产精品 | 久久激情中文| 国产精品精品| av在线最新| 免费av一区二区三区四区| 视频一区在线播放| 99国产精品久久久久久久成人热| 亚洲自啪免费| 国产精品qvod| 久久久一二三| 91精品一区| 91精品一区二区三区综合| 国产精品色网| 国产精品蜜月aⅴ在线| 久久久国产精品一区二区中文| 丝袜亚洲另类欧美| 国产成人精品一区二区免费看京| 国产一级久久| 国产精品欧美一区二区三区不卡 | 精品视频97| 日韩网站在线| 精品日韩一区| 日韩欧美美女在线观看| 国产 日韩 欧美一区| 国产精品一区二区免费福利视频| 一区三区视频| 91av亚洲| 精品久久久中文字幕| 视频一区中文字幕精品| 欧美午夜不卡| 天堂av在线| 色欧美自拍视频| 国产一区二区三区四区五区传媒| 亚洲三级网站| 欧美午夜不卡影院在线观看完整版免费| 欧美成人aaa| 欧美精品91| 久久伊人亚洲| 欧美激情网址| 麻豆一区二区三区| 麻豆91精品91久久久的内涵| 国产精品久久久久久久免费软件| 日韩精品久久久久久久软件91| 亚洲欧美日本日韩| 亚洲视频电影在线| 日韩激情一二三区|