版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第minio安裝部署及使用的詳細(xì)過程目錄一、服務(wù)器安裝minio1.進(jìn)行下載2.新建minio安裝目錄,執(zhí)行如下命令二、進(jìn)行訪問,并設(shè)置桶1.訪問三、springboot進(jìn)行實現(xiàn)1.引入依賴2.在application.yml文件中加入MinIO服務(wù)器的相關(guān)信息3.創(chuàng)建實體類4.創(chuàng)建核心配置類5.上傳工具類6.controller接口測試總結(jié)
一、服務(wù)器安裝minio
1.進(jìn)行下載
下載地址:
GNU/Linux
https://dl.min.io/server/minio/release/linux-amd64/minio
2.新建minio安裝目錄,執(zhí)行如下命令
mkdir-p/home/minio/data
把二進(jìn)制文件上傳到安裝目錄后,執(zhí)行:
chmod+xminio//給予權(quán)限
exportMINIO_ACCESS_KEY=minioadmin//創(chuàng)建賬號
exportMINIO_SECRET_KEY=minioadmin//創(chuàng)建密碼
./minioserver/home/minio/data//啟動
后臺啟動,并打印日志
nohup./minioserver/home/minio/data/home/minio/data/minio.log
默認(rèn)的端口為:9000
自定義端口方式:自定義啟動端口號以及控制臺端口號,不設(shè)置則控制臺會自動配置其他端口號,非常不方便
nohup./minioserver--address:9000--console-address:9001/home/minio/data/home/minio/data/minio.log
查看狀態(tài)
ps-ef|grepminio
二、進(jìn)行訪問,并設(shè)置桶
1.訪問
地址::9000
輸入賬號密碼后:
進(jìn)行創(chuàng)建桶,名字自取,創(chuàng)建完成后服務(wù)器home/minio/data下也會創(chuàng)建這個文件目錄
進(jìn)行設(shè)置:
必須將規(guī)則設(shè)置成readwrite,才可進(jìn)行讀取文件,否則只存或者只能讀。
三、springboot進(jìn)行實現(xiàn)
1.引入依賴
!--minio相關(guān)依賴--
dependency
groupIdio.minio/groupId
artifactIdminio/artifactId
version3.0.10/version
/dependency
!--alibaba的fastjson--
dependency
groupIdcom.alibaba/groupId
artifactIdfastjson/artifactId
version1.2.51/version
/dependency
!--thymeleaf模板引擎--
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-thymeleaf/artifactId
/dependency
2.在application.yml文件中加入MinIO服務(wù)器的相關(guān)信息
#minio文件存儲配置信息
minio:
endpoint::9000
accesskey:minioadmin
secretKey:minioadmin
3.創(chuàng)建實體類
這一步,我們將配置文件中minio的配置信息通過注解的方式注入到MinioProp這個實體中,方便后面我們使用
importlombok.Data;
importperties.ConfigurationProperties;
importorg.springframework.stereotype.Component;
*minio屬性值
@Data
@Component
@ConfigurationProperties(prefix="minio")
publicclassMinioProp{
*連接url
privateStringendpoint;
*用戶名
privateStringaccesskey;
*密碼
privateStringsecretKey;
4.創(chuàng)建核心配置類
通過注入MinIO服務(wù)器的相關(guān)配置信息,得到MinioClient對象,我們上傳文件依賴此對象
importio.minio.MinioClient;
importio.minio.errors.InvalidEndpointException;
importio.minio.errors.InvalidPortException;
importorg.springframework.beans.factory.annotation.Autowired;
importperties.EnableConfigurationProperties;
importorg.springframework.context.annotation.Bean;
importorg.springframework.context.annotation.Configuration;
*minio核心配置類
@Configuration
@EnableConfigurationProperties(MinioProp.class)
publicclassMinioConfig{
@Autowired
privateMinioPropminioProp;
*獲取MinioClient
*@return
*@throwsInvalidPortException
*@throwsInvalidEndpointException
@Bean
publicMinioClientminioClient()throwsInvalidPortException,InvalidEndpointException{
returnnewMinioClient(minioProp.getEndpoint(),minioProp.getAccesskey(),minioProp.getSecretKey());
5.上傳工具類
importcom.alibaba.fastjson.JSONObject;
importmon.redis.RedisUtil;
importcom.zyxx.email.utils.DateUtils;
importio.minio.MinioClient;
importlombok.SneakyThrows;
importlombok.extern.slf4j.Slf4j;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Component;
importorg.springframework.web.multipart.MultipartFile;
@Slf4j
@Component
publicclassMinioUtils{
@Autowired
privateMinioClientclient;
@Autowired
privateMinioPropminioProp;
*創(chuàng)建bucket
*@parambucketNamebucket名稱
@SneakyThrows
publicvoidcreateBucket(StringbucketName){
if(!client.bucketExists(bucketName)){
client.makeBucket(bucketName);
*上傳文件
*@paramfile文件
*@parambucketName存儲桶
*@return
publicJSONObjectuploadFile(MultipartFilefile,StringbucketName)throwsException{
JSONObjectres=newJSONObject();
res.put("code",0);
//判斷上傳文件是否為空
if(null==file||0==file.getSize()){
res.put("msg","上傳文件不能為空");
returnres;
try{
//判斷存儲桶是否存在
createBucket(bucketName);
//文件名
StringoriginalFilename=file.getOriginalFilename();
//新的文件名=存儲桶名稱_時間戳.后綴名
StringfileName=bucketName+"_"+System.currentTimeMillis()+originalFilename.substring(originalFilename.lastIndexOf("."));
//開始上傳
client.putObject(bucketName,fileName,file.getInputStream(),file.getContentType());
res.put("code",1);
res.put("msg",minioProp.getEndpoint()+"/"+bucketName+"/"+fileName);
returnres;
}catch(Exceptione){
log.error("上傳文件失?。簕}",e.getMessage());
res.put("msg","上傳失敗");
returnres;
6.controller接口
importcom.alibaba.fastjson.JSONObject;
importmon.minio.MinioUtils;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Cont
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 統(tǒng)編版2025-2026學(xué)年語文四年級第一學(xué)期期末質(zhì)量檢測練習(xí)卷(含答案)
- 湖南省岳陽市汨羅市2025-2026學(xué)年八年級上學(xué)期1月期末生物試題(無答案)
- 河南省駐馬店市泌陽縣2025-2026學(xué)年八年級上學(xué)期1月期末考試歷史試卷答案
- 2025-2026學(xué)年一年級(上)期末游戲化測試語文試卷(附參考答案)
- 五年級題目及答案
- 文件筐測試題及答案
- 2026年小學(xué)語文模擬沖刺押題卷
- 誠實做事的演講稿
- 冀教版三年級上冊數(shù)學(xué)第二單元-兩、三位數(shù)乘一位數(shù)-測試卷及答案(奪冠系列)
- 高中高二下學(xué)期地理期末考試試題答案解析
- 蘇教版高中化學(xué)必修二知識點
- 2024年國家公務(wù)員考試國考中國人民銀行結(jié)構(gòu)化面試真題試題試卷及答案解析
- 2025年中考語文一輪復(fù)習(xí):民俗類散文閱讀 講義(含練習(xí)題及答案)
- 高中數(shù)學(xué)選擇性必修一課件第一章 空間向量與立體幾何章末復(fù)習(xí)(人教A版)
- 標(biāo)準(zhǔn)商品房買賣合同文本大全
- LY/T 3408-2024林下經(jīng)濟(jì)術(shù)語
- 2025年湖南邵陽市新邵縣經(jīng)濟(jì)開發(fā)區(qū)建設(shè)有限公司招聘筆試參考題庫附帶答案詳解
- 2023-2024學(xué)年八年級(上)期末數(shù)學(xué)試卷
- DB33T 1238-2021 智慧燈桿技術(shù)標(biāo)準(zhǔn)
- ICH《M10:生物分析方法驗證及樣品分析》
- 福建省泉州市晉江市2023-2024學(xué)年八年級上學(xué)期期末考試數(shù)學(xué)試卷(含解析)
評論
0/150
提交評論