From 74629bd3a3b905f1afa42e1892b9047ea22122c2 Mon Sep 17 00:00:00 2001
From: Johannes Buechele <johannes@bujo.at>
Date: Wed, 28 Jun 2023 18:19:14 +0200
Subject: [PATCH] added prefix to minio buckets

---
 .../src/main/resources/application.yml        |  3 +++
 .../common/minio/MinioService.java            | 24 +++++++++----------
 .../models/MinioConfigurationProperties.java  |  1 +
 .../src/main/resources/application.yml        |  3 +++
 .../src/main/resources/application.yml        |  3 +++
 .../src/main/resources/application.yml        |  3 +++
 6 files changed, 25 insertions(+), 12 deletions(-)

diff --git a/faircommons-services/api-service/src/main/resources/application.yml b/faircommons-services/api-service/src/main/resources/application.yml
index 2fc82e7..b26e245 100644
--- a/faircommons-services/api-service/src/main/resources/application.yml
+++ b/faircommons-services/api-service/src/main/resources/application.yml
@@ -33,6 +33,9 @@ server:
   servlet:
     context-path: /${spring.application.name}
 
+minio:
+  bucketPrefix: fairregister-
+
 security:
   web:
     resource:
diff --git a/faircommons-services/common/src/main/java/eu/fairkom/faircommons/common/minio/MinioService.java b/faircommons-services/common/src/main/java/eu/fairkom/faircommons/common/minio/MinioService.java
index 2466d3c..f41a976 100644
--- a/faircommons-services/common/src/main/java/eu/fairkom/faircommons/common/minio/MinioService.java
+++ b/faircommons-services/common/src/main/java/eu/fairkom/faircommons/common/minio/MinioService.java
@@ -4,17 +4,21 @@ import io.minio.*;
 import io.minio.http.Method;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.io.InputStream;
+import java.util.concurrent.TimeUnit;
 
 import static eu.fairkom.faircommons.common.Constants.REGISTRATION_CERTIFICATE_FOLDER;
 import static eu.fairkom.faircommons.common.Constants.REGISTRATION_CERTIFICATE_NAME;
 
 @Service
 public class MinioService {
-    private static final Logger logger = LoggerFactory.getLogger(MinioService.class);
     private final MinioClient minioClient;
+    @Value("${minio.bucketPrefix}")
+    private String prefix;
+
 
     public MinioService(MinioClient minioClient) {
         this.minioClient = minioClient;
@@ -30,14 +34,10 @@ public class MinioService {
         return getPresignedObjectUrl(userId, filename, Method.PUT);
     }
 
-    public String generatePresignedDownloadUrl(String userId, String filename) throws MinioException {
-        return getPresignedObjectUrl(userId, filename, Method.GET);
-    }
-
     public InputStream downloadFile(String userId, String filename) throws MinioException {
         try {
             var downloadFileArgs = GetObjectArgs.builder()
-                    .bucket(userId)
+                    .bucket(prefix + userId)
                     .object(filename)
                     .build();
 
@@ -51,7 +51,7 @@ public class MinioService {
         try {
             var filename = filenamePrefix + "/" + REGISTRATION_CERTIFICATE_FOLDER + "/" + REGISTRATION_CERTIFICATE_NAME;
             var uploadFileArgs = PutObjectArgs.builder()
-                    .bucket(userId)
+                    .bucket(prefix + userId)
                     .object(filename)
                     .stream(inputStream, -1, 5242880)
                     .contentType("application/pdf")
@@ -71,7 +71,7 @@ public class MinioService {
     public void removeFile(String userId, String filename) throws MinioException {
         try {
             var removeFileArgs = RemoveObjectArgs.builder()
-                    .bucket(userId)
+                    .bucket(prefix + userId)
                     .object(filename)
                     .build();
 
@@ -85,7 +85,7 @@ public class MinioService {
         try {
             minioClient.makeBucket(
                     MakeBucketArgs.builder()
-                            .bucket(userId)
+                            .bucket(prefix + userId)
                             .build());
         } catch (Exception e) {
             throw new MinioException(e.getMessage(), e.getCause());
@@ -95,7 +95,7 @@ public class MinioService {
     private boolean bucketExists(String userId) throws MinioException {
         try {
             return minioClient.bucketExists(BucketExistsArgs.builder()
-                    .bucket(userId).build());
+                    .bucket(prefix + userId).build());
         } catch (Exception e) {
             throw new MinioException(e.getMessage(), e.getCause());
         }
@@ -105,10 +105,10 @@ public class MinioService {
         try {
             return minioClient.getPresignedObjectUrl(
                     GetPresignedObjectUrlArgs.builder()
-                            .bucket(userId)
+                            .bucket(prefix + userId)
                             .object(filename)
                             .method(method)
-                            //.expiry(1, TimeUnit.DAYS)
+                            .expiry(3, TimeUnit.HOURS)
                             .build());
         } catch (Exception e) {
             throw new MinioException(e.getMessage(), e.getCause());
diff --git a/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/minio/models/MinioConfigurationProperties.java b/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/minio/models/MinioConfigurationProperties.java
index 81cdc77..d4e7e38 100644
--- a/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/minio/models/MinioConfigurationProperties.java
+++ b/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/minio/models/MinioConfigurationProperties.java
@@ -10,5 +10,6 @@ public class MinioConfigurationProperties {
     private String accessKey;
     private String secretKey;
     private boolean secure;
+    private String bucketPrefix;
 
 }
diff --git a/faircommons-services/hashing-service/src/main/resources/application.yml b/faircommons-services/hashing-service/src/main/resources/application.yml
index 61077b1..0cb96f1 100644
--- a/faircommons-services/hashing-service/src/main/resources/application.yml
+++ b/faircommons-services/hashing-service/src/main/resources/application.yml
@@ -15,6 +15,9 @@ server:
   servlet:
     context-path: /${spring.application.name}
 
+minio:
+  bucketPrefix: fairregister-
+
 security:
   web:
     resource:
diff --git a/faircommons-services/ipfs-service/src/main/resources/application.yml b/faircommons-services/ipfs-service/src/main/resources/application.yml
index 34f783e..d397e0a 100644
--- a/faircommons-services/ipfs-service/src/main/resources/application.yml
+++ b/faircommons-services/ipfs-service/src/main/resources/application.yml
@@ -16,6 +16,9 @@ server:
   servlet:
     context-path: /${spring.application.name}
 
+minio:
+  bucketPrefix: fairregister-
+
 security:
   web:
     resource:
diff --git a/faircommons-services/post-registration-service/src/main/resources/application.yml b/faircommons-services/post-registration-service/src/main/resources/application.yml
index 6eacf76..2a53948 100644
--- a/faircommons-services/post-registration-service/src/main/resources/application.yml
+++ b/faircommons-services/post-registration-service/src/main/resources/application.yml
@@ -20,6 +20,9 @@ server:
   servlet:
     context-path: /${spring.application.name}
 
+minio:
+  bucketPrefix: fairregister-
+
 security:
   web:
     resource:
-- 
GitLab