一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - SpringBoot2 整合MinIO中間件實現文件便捷管理功能

SpringBoot2 整合MinIO中間件實現文件便捷管理功能

2020-07-28 12:07知了一笑 Java教程

這篇文章主要介紹了SpringBoot2 整合MinIO中間件,實現文件便捷管理,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

本文源碼:GitHub·點這里 || GitEE·點這里

一、MinIO簡介

1、基礎描述

MinIO是一個開源的對象存儲服務。適合于存儲大容量非結構化的數據,例如圖片、視頻、日志文件、備份數據和容器/虛擬機鏡像等,而一個對象文件可以是任意大小,從幾kb到最大5T不等。

MinIO是一個非常輕量的服務,可以很簡單的和其他應用的結合,類似 NodeJS, Redis 或者 MySQL。

2、存儲機制

MinIO使用按對象的嵌入式擦除編碼保護數據,該編碼以匯編代碼編寫,可提供最高的性能。MinIO使用Reed-Solomon代碼將對象劃分為n/2個數據和n / 2個奇偶校驗塊-盡管可以將它們配置為任何所需的冗余級別。 這意味著在12個驅動器設置中,將一個對象分片為6個數據和6個奇偶校驗塊。即使丟失了多達5個((n/2)–1)個驅動器(無論是奇偶校驗還是數據),仍然可以從其余驅動器可靠地重建數據。MinIO的實現可確保即使丟失或無法使用多個設備,也可以讀取對象或寫入新對象。最后,MinIO的擦除代碼位于對象級別,并且可以一次修復一個對象。

二、MinIO環境搭建

1、安裝包下載

?
1
https://dl.min.io/server/minio/release/linux-amd64/minio

建議使用某雷下載,速度會快點,下載包上傳到/opt/minioconfig/run目錄下。

2、創建數據存儲目錄

?
1
mkdir -p /data/minio/data

3、服務啟動

啟動并指定數據存放地址

?
1
/opt/minioconfig/run/minio server /data/minio/data/

輸出日志

Endpoint:  http://localhost:9000  http://127.0.0.1:9000   
AccessKey: minioadmin
SecretKey: minioadmin

這里就是登錄地址和賬號密碼。

三、整合SpringBoot環境

1、基礎依賴

?
1
2
3
4
5
6
7
8
9
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
 <groupId>io.minio</groupId>
 <artifactId>minio</artifactId>
 <version>3.0.12</version>
</dependency>

2、基礎配置

配置要素:地址和端口,登錄名,密碼,HTML存儲桶,圖片存儲桶。

SpringBoot2 整合MinIO中間件實現文件便捷管理功能

?
1
2
3
4
5
6
minio:
 endpoint: http://192.168.72.133:9000
 accessKey: minioadmin
 secretKey: minioadmin
 bucketNameHtml: html
 bucketNameImage: image

文件上傳之后,可以基于文件地址直接訪問,但是需要在MinIO中配置文件的讀寫權限:

SpringBoot2 整合MinIO中間件實現文件便捷管理功能

3、配置參數類

?
1
2
3
4
5
6
7
8
9
10
11
@Component
@ConfigurationProperties(prefix = "minio")
public class ParamConfig {
 
 private String endpoint ;
 private String accessKey ;
 private String secretKey ;
 private String bucketNameHtml ;
 private String bucketNameImage ;
 // 省略 get 和 set方法
}

4、基于MinIO配置類

封裝MinIO客戶端連接工具,文件上傳的基礎方法,返回文件在MinIO服務上的URL地址。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import io.minio.MinioClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
 
@Component
public class MinIOConfig {
 
 private static final Logger LOGGER = LoggerFactory.getLogger(MinIOConfig.class) ;
 
 @Resource
 private ParamConfig paramConfig ;
 
 private MinioClient minioClient ;
 
 /**
  * 初始化 MinIO 客戶端
  */
 @PostConstruct
 private void init(){
  try {
   minioClient = new MinioClient(paramConfig.getEndpoint(),
           paramConfig.getAccessKey(),
           paramConfig.getSecretKey());
  } catch (Exception e) {
   e.printStackTrace();
   LOGGER.info("MinIoClient init fail ...");
  }
 }
 
 /**
  * 上傳 <html> 頁面
  */
 public String uploadHtml (String fileName, String filePath) throws Exception {
  minioClient.putObject(paramConfig.getBucketNameHtml(),fileName,filePath);
  return paramConfig.getEndpoint()+"/"+paramConfig.getBucketNameHtml()+"/"+fileName ;
 }
 
 /**
  * 上傳 <img> 圖片
  */
 public String uploadImg (String imgName, String imgPath) throws Exception {
  minioClient.putObject(paramConfig.getBucketNameImage(),imgName,imgPath);
  return paramConfig.getEndpoint()+"/"+paramConfig.getBucketNameImage()+"/"+imgName ;
 }
}

5、服務實現

提供兩個基礎方法:HTML和圖片上傳,存儲在不同位置。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import com.minio.file.config.MinIOConfig;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
 
@Service
public class UploadServiceImpl implements UploadService {
 
 @Resource
 private MinIOConfig minIOConfig ;
 
 // 上傳 <html> ,返回服務器地址
 @Override
 public String uploadHtml(String fileName, String filePath) throws Exception {
  return minIOConfig.uploadHtml(fileName,filePath);
 }
 
 // 上傳 <img> ,返回服務器地址
 @Override
 public String uploadImg(String imgName, String imgPath) throws Exception {
  return minIOConfig.uploadImg(imgName,imgPath);
 }
}

上傳之后,基于瀏覽器訪問接口返回的url,查看效果:

SpringBoot2 整合MinIO中間件實現文件便捷管理功能

四、源代碼地址

GitHub·地址
https://github.com/cicadasmile/middle-ware-parent
GitEE·地址
https://gitee.com/cicadasmile/middle-ware-parent

到此這篇關于SpringBoot2 整合MinIO中間件實現文件便捷管理功能的文章就介紹到這了,更多相關SpringBoot2 整合MinIO中間件內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/cicada-smile/p/13387459.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男人天堂亚洲 | 久久毛片免费看一区二区三区 | 91久久偷偷做嫩草影院免费 | 精品久久香蕉国产线看观看麻豆 | 久久久大香菇 | 青青自拍视频 | 亚洲国产午夜 | 午夜一个人在线观看完整版 | poren黑人 | 亚洲男人的天堂视频 | 婷婷色婷婷 | 亚洲色欲色欲综合网站 | 日本亚欧乱色视频在线观看 | 99久久香蕉国产线看观香 | 欧美日本一道高清免费3区 欧美人做人爱a全程免费 | 国产在线步兵一区二区三区 | 海绵宝宝第二季全集免费观看 | 国产精品1页 | 亚洲七七久久综合桃花 | 亚洲麻豆精品果冻传媒 | 国产福利在线观看91精品 | 国产极品精频在线观看 | 亚洲偷窥图区色 | 猫咪av | 欧美日韩久久中文字幕 | 成年人天堂 | 出差被灌醉绝伦的上司日本 | 国产精品福利短视在线播放频 | 2020年国产精品午夜福利在线观看 | adult video在线观看 | 美女被网站 | 色老板视频在线 | 秋葵丝瓜茄子草莓榴莲樱桃 | 欧美破苞合集 magnet | 99re这里只有精品视频在线观看 | 日本红色高清免费观看 | 18未年禁止免费观看 | 国产精品aaa| 欧美日韩在线观看精品 | 好 舒服 好 粗 好硬免费视频 | 久久久无码精品亚洲A片猫咪 |