-
MinIO 는 AWS 의 S3 SDK 와 호환되는 오픈소스 오브젝트 스토리지 서버 제품입니다.
Document 참고하여 쉽게 구현할 수 있으며 로컬에서 구현해본 내용을 정리하였습니다.
https://min.io/docs/minio/linux/developers/java/minio-java.html#minio-java-quickstart
Java Quickstart Guide — MinIO Object Storage for Linux
MinIO Java SDK is Simple Storage Service (aka S3) client to perform bucket and object operations to any Amazon S3 compatible object storage service. For a complete list of APIs and examples, please take a look at the Java Client API Reference documentation
min.io
1. minio 다운로드
1) MinIO 서버 설치 (windows)
다음 URL에서 MinIO 실행 파일을 다운로드 또는 홈페이지에서 내려받기
https://dl.min.io/server/minio/release/windows-amd64/minio.exe
2) minio.exe가 있는 위치에서 PowerShell 또는 명령 프롬프트 실행 후 아래 입력
.\minio.exe server C:\minio --console-address :9090
(창을 닫으면 서버가 중지되고 프로세스가 종료됨)
3) http://localhost:9090/ 으로 접속 가능
기본 아이디, 비밀번호는 minioadmin
4) Assess key 생성하기
5) 2번 이어서 실행
2. Spring project
1) 의존성 추가
나는 maven project이라 pom.xml에 의존성을 추가하였다.
<dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>8.4.3</version> </dependency>
Gradle일 경우 아래를 추가한다.
dependencies { implementation("io.minio:minio:8.4.6") }
2) Java 로직 추가
- endpoint는 바꿀 수 있다.
- credentials에는 생성한 Assess key와 Password를 적어준다
- filename에 경로가 포함된 파일명을, object에 파일명을 적어주었다.
public class FileUploader { public static void main(String[] args) throws IOException, NoSuchAlgorithmException, InvalidKeyException { try { // Create a minioClient with the MinIO server playground, its access key and secret key. MinioClient minioClient = MinioClient.builder() .endpoint("http://localhost:9000") .credentials("Access Key", "Password") .build(); // Make 'asiatrip' bucket if not exist. boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket("asiatrip").build()); if (!found) { // Make a new bucket called 'asiatrip'. minioClient.makeBucket(MakeBucketArgs.builder().bucket("asiatrip").build()); } else { System.out.println("Bucket 'asiatrip' already exists."); } // Upload '/home/user/Photos/asiaphotos.zip' as object name 'asiaphotos-2015.zip' to bucket // 'asiatrip'. minioClient.uploadObject( UploadObjectArgs.builder() .bucket("asiatrip") .object("gocal.jpeg") .filename("C:\\Users\\imags\\gocal.jpeg") .build()); System.out.println( "'/home/user/Photos/asiaphotos.zip' is successfully uploaded as " + "object 'asiaphotos-2015.zip' to bucket 'asiatrip'."); } catch (MinioException e) { System.out.println("Error occurred: " + e); System.out.println("HTTP trace: " + e.httpTrace()); } } }
(성공로그)
'/home/user/Photos/asiaphotos.zip' is successfully uploaded as object 'asiaphotos-2015.zip' to bucket 'asiatrip'(위의 코드는 MinIO에서 제공하는 예제코드입니다.)
결과
빈버킷 && 이미지 업로드가 생성된 버킷
'데이터베이스' 카테고리의 다른 글
sqldeveloper) mysql -> oracle migration하기 (1) 2023.11.07 docker로 oracle 연결하기 (0) 2023.11.06 제 49회 sqld 합격후기 (0) 2023.07.09 MySQL) 테이블 합치고 조회, 중복데이터 문제 (0) 2022.12.23 댓글