Skip to content

Commit

Permalink
feat($MinIO): integrate MinIO
Browse files Browse the repository at this point in the history
[skip ci]
  • Loading branch information
johnnymillergh committed Jun 7, 2021
1 parent 010e2c3 commit 4db17c0
Show file tree
Hide file tree
Showing 8 changed files with 333 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,10 @@ sftp:
maf:
configuration:
swagger-disabled: false

minio:
endpoint: http://localhost
port: 9900
access-key: maf_minio_root_user
secret-key: jm@minio
bucket-name: maf
2 changes: 1 addition & 1 deletion docker/.env
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ MAF_TAG=0.0.2-SNAPSHOT
MYSQL_SERVER_TAG=8.0.23-1.1.19
REDIS_TAG=6.0.10-alpine3.13
ATMOZ_SFTP_TAG=alpine
MINIO_TAG=RELEASE.2021-04-27T23-46-03Z.release.0033eb96
MINIO_TAG=RELEASE.2021-05-26T00-22-46Z
RABBITMQ_TAG=3.8.14-management-alpine
ZIPKIN_MYSQL_TAG=2.22.2
ZIPKIN_DEPENDENCIES_TAG=2.6.3
Expand Down
6 changes: 6 additions & 0 deletions spring-cloud-starter/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -155,5 +155,11 @@
<artifactId>logstash-logback-encoder</artifactId>
<version>${logstash-logback-encoder.version}</version>
</dependency>

<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>${minio.version}</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,8 @@
WebSecurityConfiguration.class,
RestTemplateConfiguration.class,
AsyncConfiguration.class,
RabbitmqConfiguration.class
RabbitmqConfiguration.class,
MinioConfiguration.class
})
public class MafAutoConfiguration {
@PostConstruct
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.jmsoftware.maf.springcloudstarter.configuration;

import com.jmsoftware.maf.springcloudstarter.helper.MinioHelper;
import io.minio.MinioClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

/**
* <h1>MinioConfiguration</h1>
* <p>
* Change description here.
*
* @author Johnny Miller (锺俊), email: johnnysviva@outlook.com, date: 6/7/21 9:58 PM
**/
@Slf4j
@Configuration
@Import({
MinioProperty.class
})
public class MinioConfiguration {
@Bean
public MinioClient minioClient(MinioProperty minioProperty) {
log.warn("Initial bean: '{}'", MinioClient.class.getSimpleName());
return MinioClient.builder()
.endpoint(minioProperty.getEndpoint(), minioProperty.getPort(),
minioProperty.getSecure())
.credentials(minioProperty.getAccessKey(), minioProperty.getSecretKey())
.build();
}

@Bean
public MinioHelper minioHelper(MinioClient minioClient) {
log.warn("Initial bean: '{}'", MinioHelper.class.getSimpleName());
return new MinioHelper(minioClient);
}
}
Original file line number Diff line number Diff line change
@@ -1,38 +1,57 @@
package com.jmsoftware.maf.springcloudstarter.configuration;

import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
* <h1>MinioConfiguration</h1>
* <h1>MinioProperty</h1>
* <p>
* Change description here.
*
* @author Johnny Miller (鍾俊), email: johnnysviva@outlook.com
* @date 4/29/21 2:23 PM
**/
* @author Johnny Miller (锺俊), email: johnnysviva@outlook.com, date: 6/7/21 9:39 PM
*/
@Data
@Slf4j
@Validated
@Component
@ConfigurationProperties(prefix = MinioClientConfiguration.PREFIX)
public class MinioClientConfiguration {
public static final String PREFIX = "minio.client.configuration";
@ConfigurationProperties(prefix = MinioProperty.PREFIX)
public class MinioProperty {
/**
* The constant PREFIX.
*/
public static final String PREFIX = "minio";
/**
* The Endpoint.
*/
@NotBlank
private String endpoint;
/**
* The Port.
*/
@NotNull
private Integer port;
/**
* The Access key. User ID
*/
@NotBlank
private String accessKey;
/**
* The Secret key. Password
*/
@NotBlank
private String secretKey;
/**
* The Secure.
*/
private Boolean secure = Boolean.TRUE;
/**
* The Bucket name.
*/
private String bucketName;
/**
* The Config dir.
*/
private String configDir;
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public class WebMvcConfiguration implements WebMvcConfigurer {
* @param registry CORS registry
*/
@Override
@SuppressWarnings("BroadCORSAllowOrigin")
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
Expand Down
Loading

0 comments on commit 4db17c0

Please sign in to comment.