国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 免费三级黄色 | 成人高清视频在线观看 | 久久综合久久综合久久综合 | 色香阁99久久精品久久久 | 国产精品久久久久久久久久免费 | 日韩高清在线一区 | 国产日韩欧美在线 | 99re免费视频精品全部 | 亚洲视频一区 | 人人射av| 国产资源免费观看 | 亚洲一区二区三区蜜桃 | 久久福利 | 一区二区三区国产 | 青青久视频 | 中文字幕人成乱码在线观看 | 亚洲精品成人在线 | 911av视频| 日韩成人在线一区 | 成人网av | 蜜桃精品在线 | 不卡一区在线观看 | 国产黄色在线播放 | 99最新在线视频 | 亚洲成人中文字幕 | 视频一区二区三区在线播放 | 亚洲视频欧美视频 | 免费成人在线观看 | 国产a级毛片 | 亚洲人视频 | 国产视频第一页 | 中文日韩在线 | 国产精品999 | 久久高清精品 | 一级做a爰片性色毛片2021 | 国产成人精品a视频一区www | 伊大人久久香线焦宗合一75大 | 精品国产乱码久久久久久88av | 国产毛片精品 | 欧美日韩视频 | 在线观看一区 |