diff --git a/libraries-data-2/pom.xml b/libraries-data-2/pom.xml index 655bad2e2b..b9b785cebb 100644 --- a/libraries-data-2/pom.xml +++ b/libraries-data-2/pom.xml @@ -116,6 +116,11 @@ guava ${guava.version} + + io.minio + minio + ${minio.version} + org.awaitility awaitility @@ -177,6 +182,7 @@ 3.0.0 2.8.4 2.1.13 + 8.5.2 - \ No newline at end of file + diff --git a/libraries-data-2/src/main/java/com/baeldung/minio/MinIOService.java b/libraries-data-2/src/main/java/com/baeldung/minio/MinIOService.java new file mode 100644 index 0000000000..f7a8f498be --- /dev/null +++ b/libraries-data-2/src/main/java/com/baeldung/minio/MinIOService.java @@ -0,0 +1,35 @@ +package com.baeldung.minio; + +import io.minio.GetObjectArgs; +import io.minio.MakeBucketArgs; +import io.minio.MinioClient; +import io.minio.UploadObjectArgs; + +public class MinIOService { + private MinioClient minioClient = + MinioClient.builder() + .endpoint("http://127.0.0.1:9000") + .credentials("minioadmin", "minioadmin") + .build(); + + public void doSomething() throws Exception { + minioClient.makeBucket( + MakeBucketArgs + .builder() + .bucket("user2") + .build()); + + minioClient.uploadObject( + UploadObjectArgs + .builder() + .bucket("user2") + .filename("/tmp/Resume.pdf") + .build()); + + minioClient.getObject( + GetObjectArgs.builder() + .bucket("user2") + .object("Resume.pdf") + .build()); + } +} diff --git a/libraries-data-2/src/test/java/com/baeldung/minio/MinIOServiceLiveTest.java b/libraries-data-2/src/test/java/com/baeldung/minio/MinIOServiceLiveTest.java new file mode 100644 index 0000000000..8737e5e7aa --- /dev/null +++ b/libraries-data-2/src/test/java/com/baeldung/minio/MinIOServiceLiveTest.java @@ -0,0 +1,73 @@ +package com.baeldung.minio; + +import io.minio.*; +import org.junit.Before; +import org.junit.Test; + +import java.io.*; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class MinIOServiceLiveTest { + + private MinioClient minioClient; + + private final String BUCKET_NAME = "livetest"; + + private final String OBJECT_NAME = "minio_sample.txt"; + + private final String CONTENTS = "hello"; + + @Before + public void setup() { + minioClient = + MinioClient.builder() + .endpoint("http://127.0.0.1:9000") + .credentials("minioadmin", "minioadmin") + .build(); + } + + @Test + public void givenFile_whenUploadAndRetrive_thenContentsAreCorrect() throws Exception { + + if(!minioClient.bucketExists(BucketExistsArgs + .builder() + .bucket(BUCKET_NAME) + .build())) { + + minioClient.makeBucket(MakeBucketArgs + .builder() + .bucket(BUCKET_NAME) + .build()); + } + + minioClient.putObject(PutObjectArgs + .builder() + .bucket(BUCKET_NAME) + .object(OBJECT_NAME) + .stream(new ByteArrayInputStream(CONTENTS.getBytes()), CONTENTS.length(),-1) + .build()); + + try (InputStream stream = + minioClient.getObject(GetObjectArgs + .builder() + .bucket(BUCKET_NAME) + .object(OBJECT_NAME) + .build())) { + + byte[] obj = new byte[CONTENTS.length()]; + stream.read(obj); + assertEquals(CONTENTS, new String(obj)); + } + catch (IOException e) { + + } + finally { + minioClient.removeObject(RemoveObjectArgs + .builder() + .bucket(BUCKET_NAME) + .object(OBJECT_NAME) + .build()); + } + } +}