SpringBoot 2 MinIO 미들웨어 통합 파일 간편 관리 기능 구현
6351 단어 SpringBootMinIO중간 부품
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 미들웨어 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.