SpringBoot 2 MinIO 미들웨어 통합 파일 간편 관리 기능 구현

본문 소스 코드:GitHub/여기 눌 러 주세요.|지 티 여기 시 켜.
1.MinIO 소개
미니 오 는 고성능 과 아마 존 S3 API 를 위해 설계 됐다.MinIO 는 안전 에 대한 요구 가 엄격 한 대형 사유 클 라 우 드 환경 에 매우 적합 하여 각 작업 부하 에서 높 은 사용 을 보장 할 수 있다.
1.기초 설명
MinIO 는 오픈 소스 대상 저장 서비스 다.그림,동 영상,로그 파일,백업 데이터 와 용기/가상 컴퓨터 미 러 등 대 용량 비 구조 화 된 데 이 터 를 저장 하 는 데 적합 하 며,대상 파일 은 몇 kb 에서 최대 5T 까지 임의의 크기 일 수 있 습 니 다.
MinIO 는 매우 가 벼 운 서비스 로 다른 응용 프로그램 과 간단하게 결합 할 수 있 습 니 다.NodeJS,Redis 또는 MySQL 과 유사 합 니 다.
2.저장 메커니즘
MinIO 는 대상 의 끼 워 넣 기 에 따라 인 코딩 보호 데 이 터 를 지 웁 니 다.이 인 코딩 은 어 셈 블 리 코드 로 작성 되 어 최고의 성능 을 제공 합 니 다.MinIO 는 Reed-Solomon 코드 를 사용 하여 대상 을 n/2 개의 데이터 와 n/2 개의 패 리 티 검사 블록 으로 나 눌 수 있 습 니 다.필요 한 불필요 한 단계 로 설정 할 수 있 지만.이 는 12 개의 드라이브 설정 에서 하나의 대상 을 6 개의 데이터 와 6 개의 패 리 티 검사 블록 으로 나 누 는 것 을 의미한다.5 개(n/2)C1)개 드라이브(패 리 티 검사 든 데이터 든)를 잃 어 버 렸 더 라 도 다른 드라이브 에서 데 이 터 를 신뢰 할 수 있 게 재 구축 할 수 있 습 니 다.MinIO 구현 은 여러 장 치 를 잃 어 버 리 거나 사용 할 수 없 더 라 도 대상 을 읽 거나 새 대상 에 쓸 수 있 도록 합 니 다.마지막 으로 MinIO 의 지우 기 코드 는 대상 단계 에 있 고 한 번 에 대상 을 복구 할 수 있 습 니 다.
2.MinIO 환경 구축
1.패키지 다운로드

https://dl.min.io/server/minio/release/linux-amd64/minio
한 레이 를 사용 하여 다운로드 하 는 것 을 권장 합 니 다.속도 가 빠 르 고 다운로드 가방 은 4.567914.디 렉 터 리 에 전 달 됩 니 다.
2.데이터 저장 디 렉 터 리 만 들 기

mkdir -p /data/minio/data
3.서비스 시작
데이터 저장 주 소 를 시작 하고 지정 합 니 다.

/opt/minioconfig/run/minio server /data/minio/data/
출력 로그
Endpoint:  http://localhost:9000   http://127.0.0.1:9000    
AccessKey: minioadmin
SecretKey: minioadmin
여기 가 바로 로그 인 주소 와 계좌 번호 입 니 다.
3.SpringBoot 환경 통합
1.기초 의존

<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 저장 통,이미지 저장 통.

minio:
 endpoint: http://192.168.72.133:9000
 accessKey: minioadmin
 secretKey: minioadmin
 bucketNameHtml: html
 bucketNameImage: image
파일 업로드 후 파일 주소 에 따라 직접 접근 할 수 있 지만 MinIO 에서 파일 읽 기와 쓰기 권한 을 설정 해 야 합 니 다.

3.매개 변수 클래스 설정

@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 주 소 를 되 돌려 줍 니 다.

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 과 이미지 업로드,서로 다른 위치 에 저장 하 는 두 가지 기본 방법 을 제공 합 니 다.

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,효과 보기:

소스 코드 주소
GitHub/주소
https://github.com/cicadasmile/middle-ware-parent
GitEE/주소
https://gitee.com/cicadasmile/middle-ware-parent
여기 서 SpringBoot 2 가 MinIO 미들웨어 를 통합 하여 파일 의 편리 한 관리 기능 을 실현 하 는 것 에 관 한 글 을 소개 합 니 다.더 많은 SpringBoot 2 통합 MinIO 미들웨어 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기