MinioClient를 통해 putObject를 하는 과정에서 다음과 같은 오류가 발생하였다. io.minio.errors.ErrorResponseException: Object name contains unsupported characters. at io.minio.MinioClient.executeReq(MinioClient.java:1204) ~[minio-6.0.11.jar:6.0.11] at io.minio.MinioClient.execute(MinioClient.java:1066) ~[minio-6.0.11.jar:6.0.11] at io.minio.MinioClient.executePut(MinioClient.java:1430) ~[minio-6.0.11.jar:6.0.11] at io.mi..
MinIO는 고가용성을 확보하기 위해 Distributed mode를 지원한다. 그래서 운영환경에서 MinIO를 사용하기 위해서는 Distributed mode가 필요하다. 이를 구성하기 위해 별다른 복잡한 기술이 필요한게 아니라 기존에 설정했던것에 매개변수 정도 추가하면 간단히 구성이 가능하다. MinIO의 distributed mode architecture 이다. 파일이 들어오면 이것을 여러개의 서버에 분산해서 저장을 하는 것이다. 이로인해 이 서버중 한대가 장애가 난다 하더라도 계속해서 이용을 할 수가 있다. 물론 서버와 disk의 투자가 필요하다. 구성방법 Distributed mode 구성에 앞서 지난번에 포스팅한 MinIO 실행 스크립트를 한번 살펴보자. 실수를 방지하기 위해서 그냥 실행명령..
Minio를 이것저것 설정하고 되랏! 하며 기동을 시키면 다음과 같이 오류가 나는 경우가 있다. Unable to initialize server switching into safe-mode: Unable to initialize sub-systems: Unable to initialize config system: Invalid credentials.. 계정에 문제가 있나? 해서 계정정보를 수정도 해보았다. 계정정보를 수정하고 재기동을 해봐도 안되는건 마찬가지이다. 해결책이 문제는 필자는 .minio.sys 폴더를 지워서 해결하였다. .minio.sys 폴더는 minio를 기동할때 지정한다. 그 위치의 data 폴더에 들어가서 .minio.sys 폴더를 지워준다. 지워준 후 변경된 계정으로 다시 Min..
minio를 실행시킬때 처음에는 잘 되는데 두번째부터는 이와 같은 메세지를 경험할 수 있다. "Detected default credentials 'minioadmin:minioadmin', please change the credentials immediately" 최초 설치할때 자동으로 설정된 minioadmin 이라는 MINIO_ACCESS_KEY와 MINIO_SECRET_KEY를 재설정 해주라는 내용이다. 전에 포스팅한 config.json 파일을 통해 초기화를 해줄수 있지만 minio 버전에 따라서 이게 불가능한 경우도 있다. (config.json deprecated) 그럴때 간단하게 이 오류를 수정(계정 초기화)를 할수 있는 방법을 소개한다. (사실 minio 공식 가이드에 있음.) expo..
MinIO JAVA API 사용하는법 예제를 통해 쉽게 알아보기 지난번까지 MinIO를 설치하고 어떻게 사용하는지에 대해서 살펴보았다. 물론 그냥 MinIO Browser 자체를 사용하는 사람도 있을거라 생각하지만 이것만 사용하는것은 앙꼬없는 찐빵같은 것이다. 어플 oingdaddy.tistory.com 지난번에 MinIO JAVA API를 사용하는 방법에 대해서 알아보았다. bucket control 하는 방법에 대해서 예제를 통해 봤는데 file upload도 이와 거의 흡사하다. TestMinIO.java (file upload 1) public class TestMinIO { public static void main(String[] args) { try { MinioClient minioClie..
지난번까지 MinIO를 설치하고 어떻게 사용하는지에 대해서 살펴보았다. 물론 그냥 MinIO Browser 자체를 사용하는 사람도 있을거라 생각하지만 이것만 사용하는것은 앙꼬없는 찐빵같은 것이다. 어플리케이션과 연동해서 사용을 해야 비로소 제대로 사용하는 것이라고 생각된다. 일단 이번에는 MinIO의 bucket을 어떻게 java application으로 컨트롤하는지 예제를 통해 API 사용하는 법을 알아보자. MinIO Browser 에서 현재 bucket 목록을 확인한다. oingdaddy와 sample이라는 bucket이 존재한다. pom.xml io.minio minio 6.0.11 일단은 pom.xml 에 minio dependency를 추가해준다. TestMinIO.java (bucket re..
MinIO 설치를 해보고 로그인까지 성공을 했으면 그다음은 사용을 하는 방법을 알아야 한다. 사실 인터페이스가 너무너무 직관적이라 따로 글을 쓸 필요도 없지만 그래도 hoxy 모를 사용자를 위해 글을 써본다. MinIO의 초기 화면은 다음과 같다. 심플 그 자체다. 일단 아무것도 없기에 우측 하단에 + 버튼을 눌러본다. 누르면 Upload file, Create Bucket 두가지의 메뉴가 있다. Bucket은 파일 업로드 시스템의 큰 카테고리 별 폴더라고 생각하면 이해가 쉽다. 일단 한번 만들어 보자. Afolder 라고 쳤더니 소문자만 입력하라고 나와서 소문자로 입력해서 만들었다. sample이라는 bucket도 만들어봤다. 이런식으로 좌측에 bucket이 생성이 되고 그 아래의 폴더는 afolder..
MinIO를 설치하면 최초의 계정은 minioadmin/minioadmin 이다. 최초 minio를 실행하면 정상적으로 실행이 되고 지정한 위치에 data 폴더가 생긴다. 그리고나서 두번째 실행을 하면 처음에 실행했던 방법으로는 되지 않고 위와 같이 MINIO_ACCESS_KEY와 MINIO_SECRET_KEY를 정의해 줘야지만 실행할 수 있다. 그리고 맨 아래 빨간색 메세지로는 default credentials 이니 즉각 바꿔줘라 라고 메세지가 나온다. 어디서 바꾸는것일까? 위의 실행화면으로 예를 들면 data폴더의 위치를 /app/minio/data 로 정의를 해놨으면 설정파일의 위치는 /app/minio/data/.minio.sys/config/config.json 이다. 이 파일을 열어보면 다음..