Windows環境使用SpringBoot整合Minio平替OSS

目錄

配置Minio環境?

?一、下載minio.exe?mc.exe

?二、設置用戶名和密碼

用管理員模式打開cmd

三、啟動Minio服務器

四、訪問WebUI給的地址

SpringBoot整合Minio

一、配置依賴,application.yml

二、代碼部分

FileVO

MinioConfig

MinioUploadService

MinioController

三、Postman測試

配置Minio環境?

?一、下載minio.exe?mc.exe

下載地址:https://min.io/download?license=agpl&platform=windows#/windows

記住下面這個圖,重要的步驟都在這張圖里面?

?二、設置用戶名和密碼

用管理員模式打開cmd

然后進入到 minio.exe 所在的目錄

?


再來回顧剛開始的這張圖 ,現在來設置用戶名和密碼

?

這里的 adminpassword可以自定義

setx MINIO_ROOT_USER admin
setx MINIO_ROOT_PASSWORD password

?


設置完成之后可以在環境變量看見剛剛設置的值

?

三、啟動Minio服務器

現在用命令打開服務器,官網使用powershell,如果你也是用的powershell直接cv下來運行

C:\minio.exe server F:\Data --console-address ":9001"

記得修改路徑為自己本地路徑


這里我用的是cmd.exe,命令是:

.\minio.exe server D:\WorkSpaces\Minio\data --console-address "127.0.0.1:9000" --address "127.0.0.1:9001"

?因為放在代碼塊里會壓縮,這里同時拿出來給各位看一下

.\minio.exe? server? D:\WorkSpaces\Minio\data --console-address "127.0.0.1:9000" --address "127.0.0.1:9001"?

?三個色塊分別代表的是

①服務器存儲的位置??D:\WorkSpaces\Minio\data?

②服務端的端口? ? --console-address "127.0.0.1:9000"

③控制臺端口??--address "127.0.0.1:9001"?

啟動成功之后如上圖所示

四、訪問WebUI給的地址

 http://127.0.0.1:9000

?

輸入WebUI下面給的用戶名密碼登錄


這個Bucket可以理解成是一個倉庫,或者說是一個文件夾?

自此,Minio的環境就搭建好了


注意:

停止服務在用? Ctrl+C

下次minio啟動服務的命令依舊這個


接下來就是將minio與SpringBoot整合

SpringBoot整合Minio

這里我單獨創建了一個minio-test項目

一、配置依賴,application.yml

server:port: 8080spring:# 配置文件上傳大小限制servlet:multipart:max-file-size: 50MBmax-request-size: 50MBminio:config:access-key: odyssey # 用戶賬號secret-key: 88888888 # 密碼secure: false #如果是true,則用的是https而不是http,默認值是truebucketName: "test2"  # 桶的名字 相當于文件夾url: http://127.0.0.1:9001

二、代碼部分


FileVO

@Data
public class FileVO {private String url;private String fileName;private Long size;private String extname;
}

MinioConfig

@Data
@Configuration
@ConfigurationProperties(prefix = "minio.config")
public class MinioConfig {/*** 端點*/private String url;/*** 用戶名*/private String accessKey;/*** 密碼*/private String secretKey;/*** 存儲桶名稱*/private String bucketName;@Beanpublic MinioClient getMinioClient() {return MinioClient.builder().endpoint(url).credentials(accessKey, secretKey).build();}
}

MinioUploadService

@Slf4j
@Service
public class MinioUploadService  {// 注入minio配置文件@Autowiredprivate MinioConfig minioConfig;// 注入minio client@Autowiredprivate MinioClient client;public FileVO upload(MultipartFile file) throws ServerException {FileVO fileVO = new FileVO();try {// 獲取文件真實名稱String originalFilename = file.getOriginalFilename();// 獲取文件的擴展名 例如.jpg .docString extname = originalFilename.substring(originalFilename.lastIndexOf("."));// 構建文件上傳相關信息PutObjectArgs args = PutObjectArgs.builder().bucket(minioConfig.getBucketName()).object(originalFilename).stream(file.getInputStream(), file.getSize(), -1).contentType(file.getContentType()).build();// 將文件上傳到minio服務器client.putObject(args);log.info("文件上傳成功");// 組裝文件信息,返回前端 或者存入數據路String url = minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + originalFilename;fileVO.setUrl(url);fileVO.setSize(file.getSize());fileVO.setFileName(originalFilename);fileVO.setExtname(extname);} catch (Exception e) {throw new ServerException("文件上傳異常" + e.getCause().toString());}return fileVO;}
}


MinioController

@RestController
@RequestMapping("/file")
public class MinioController {@Autowiredprivate MinioUploadService minioUploadService;@PostMapping("/upload")public FileVO upload(@RequestParam("file") MultipartFile file) throws ServerException {FileVO upload = minioUploadService.upload(file);return upload;}
}

?代碼部分到此結束,記得安裝lombok依賴 導入相應的包~

然后啟動項目,項目正常

三、Postman測試

?文件我自己選擇的是一張圖片,然后點擊Send

測試成功,現在來看看客戶端有沒有這條?2344開頭的jpg文件

?可以在圖中看出已經在test2中顯示了這個文件,至此,教程結束

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38658.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38658.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38658.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用Python繪制太陽系圖

使用Python繪制太陽系圖 太陽系圖太陽系圖的優點使用場景 效果代碼 太陽系圖 太陽系圖(Sunburst Chart)是一種層次結構圖表,用于表示數據的分層結構。它使用同心圓表示各個層級,中心圓代表最高層級,向外的圓環代表逐級…

CCT技術

概念介紹 多個功能核心的集成可以通過片上系統(SOC)或封裝中系統(SIP)設備的開發來實現。SOC器件將核心集成到單個集成電路中。SIP集成是將多個集成電路組合到單個封裝中。核心數量 的增加可能導致必要的測試人員資源和/或測試時間的增加。這直接影響了與測試這些設備相關的…

CesiumJS【Basic】- #031 繪制虛線(Entity方式)

文章目錄 繪制虛線(Entity方式)1 目標2 代碼2.1 main.ts繪制虛線(Entity方式) 1 目標 使用Entity方式繪制虛線 2 代碼 2.1 main.ts import * as Cesium from cesium;const viewer = new Cesium.Viewer(

SAP實現特別總賬的憑證預制

SAP實現特別總賬的憑證預制 仔細理解只有”其他”的特殊總帳標識才可預制憑證這句話. F-29/f-48不可預制。F-29/f-48預制時出現錯誤消息號 FP 030,提示特殊總帳標志類型“匯票和”預付定金“的特別總帳標志的過帳代碼不能預制,這是系統寫死的&#xff…

現在電氣真的比不過計算機嗎 ?

電氣工程和計算機科學在今天的科技和工業領域中各有其重要性和發展空間,并不存在簡單的比較誰“比不過”誰的情況。我收集制作一份plc學習包,對于新手而言簡直不要太棒,里面包括了新手各個時期的學習方向,包括了編程教學&#xff…

Pycharm的終端(Terminal)中切換到當前項目所在的虛擬環境

1.在Pycharm最下端點擊終端/Terminal, 2.點擊終端窗口最上端最右邊的∨, 3.點擊Command Prompt,切換環境, 可以看到現在環境已經由默認的PS(Window PowerShell)切換為項目所使用的虛擬環境。 4.更近一步,如果想讓Pycharm默認顯示…

Linux常用工具使用方式

目錄 常用工具: 安裝包管理工具: 查找含有關鍵字的軟件包 安裝軟件 安裝文件傳輸工具 安裝編輯器 C語言編譯器 C編譯器 安裝調試器 安裝項目版本管理工具 cmake 卸載軟件 安裝jsoncpp 安裝boost庫 安裝mariadb 安裝tree(讓目錄…

基于Java的區塊鏈數字身份認證

基于Java的區塊鏈數字身份認證 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿!今天我們將探討基于Java的區塊鏈數字身份認證,這是區塊鏈技術在安全領…

潛水耳機哪個牌子好?用戶精選,這四款潛水耳機質量上乘!

在這個快節奏的時代,人們越來越渴望在運動中也能享受到音樂的陪伴。潛水,作為一種獨特的水下運動,自然也不例外。然而,并非所有的耳機都能承受水下的壓力和環境,這就要求我們對潛水耳機有著更高的要求。作為一名資深的…

數據庫鎖之間有哪些區別?

寫在前面: 此博客內容已經同步到我的博客網站,如需要獲得更優的閱讀體驗請前往https://mainjaylai.github.io/Blog/blog/database/lock 以下是數據庫中常用的幾種鎖類型: 1. 共享鎖(Shared Lock,S Lock) 共享鎖允許多個事務同時讀取同一資源,但不能修改該資源。其他事…

Kubernetes的發展歷程:從Google內部項目到云原生計算的基石

目錄 一、起源與背景 1.1 Google的內部項目 1.2 Omega的出現 二、Kubernetes的誕生 2.1 開源的決策 2.2 初期發布 三、Kubernetes的發展歷程 3.1 社區的成長 3.2 生態系統的壯大 3.3 重大版本和功能 3.4 多云和混合云的支持 四、Kubernetes的核心概念 4.1 Pod 4.…

hive4 從入門到精通

查詢hive 架構 準備 HDFS配置 vim $HADOOP_HOME/etc/hadoop/core-site.xml <!--配置所有節點的root用戶都可作為代理用戶--><property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property><!--配置root用戶…

Jenkins接口自動化項目的工程創建

jenkins的下載安裝 jenkins下載的官網地址 https://www.jenkins.io/download/ java環境變量的配置下載 jenkins是用java語言編寫的所以要配置java環境 需要安裝java的JDK 推薦安裝JDK17(https://blog.csdn.net/wochunyang/article/details/138520209) JDK17的下載地址 ht…

HTML文本內容 轉化為純文本

public static String htmltoString(String htmlContent) { /*String htmlContent "<p class\"MsoNormal\"><span style\"font-family: 思源黑體 CN Normal;\">1、應用場景</span></p>\n" "<p class\"Ms…

加載數據到mysql并解決原始數據亂碼問題

查看linux上數據&#xff1a; 使用命令轉換編碼&#xff1a; iconv -f GBK -t UTF-8 toutiao.csv -o toutiao2.csv加載數據到mysql: load data local infile /root/toutiao2.csv INTO TABLE pdz FIELDS TERMINATED BY , LINES TERMINATED BY \r\n;

ZXL-2000砌體砂漿強度點荷儀

一、產品簡介&#xff1a; 砌體砂漿強度點荷儀&#xff08;又名&#xff1a;砂漿點荷儀&#xff09;&#xff0c;是根據GB/T50315-2000《砌體工程現場檢驗技術規程》而研制生產的。是砌體砂漿強度檢測的專用儀器&#xff0c;其特點是能在現場或試驗室直接測試&#xff0c;不影…

Java短劇系統

探索影視新體驗 &#x1f4f1;一、引言&#xff1a;短劇時代的來臨 在數字化的今天&#xff0c;我們見證了許多內容消費模式的轉變。從長篇大論的電視劇到短小精悍的短視頻&#xff0c;再到如今備受矚目的短劇&#xff0c;觀眾對于影視內容的需求越來越多元化。而短劇系統微信…

怎么選域名?

域名是互聯網上獨一無二的標識&#xff0c;它不僅是網站訪問的地址&#xff0c;更是品牌形象的重要組成部分。選擇一個好的域名至關重要&#xff0c;因為它可以影響網站的搜索引擎排名、用戶的第一印象以及品牌的長期發展。本文將提供選擇域名時需要考慮的關鍵因素和實用建議。…

vite+vue集成cesium

1、創建項目、選擇框架vuejs pnpm create vite demo_cesium 2、進入項目安裝依賴 cd demo_cesium pnpm install3、安裝cesium及插件 3、pnpm i cesium vite-plugin-cesium 4、修改vite-config.js import { defineConfig } from vite import vue from vitejs/plugin-vue impo…

【筆記】手工部署之linux中開放已安裝的mysql與tomcat端口

在需要打包的springboot項目中輸入mvn clean package 在target下面獲得jar包 進入linux中你想要該jar包存在的位置 將jar包上傳至linux中 此時在瀏覽器中輸入linux的ip地址&#xff1a;端口號/mapping路徑為404 故&#xff1a; 在linux中另開一個標簽頁 檢查mysql和tomcat已…