MinIO spring boot starter 1.2.1 自定义Clinet和缓存清理

标签:

本文出自jvm123.com-java技术分享站:http://jvm123.com/2020/03/minio-spring-boot-4.html

minio-spring-boot-starter 为一个在springboot中引入即可使用的spring boot starter,提供了对minio的基本操作,进行文件的存储获取等。自1.2.1版本之后,可以很容易对其中使用的minio客户端、缓存清理服务根据需要进行自定义。

minio-spring-boot-starter 提供的主要功能是使用minio服务,对文件进行存储、获取、删除等,而在此过程中需要使用到MinioClient,以及对获取文件时产生的本地缓存进行清理。

如果需要自定义MinioClient,则只需要自己重新定义MinioClientProvider即可,如下:

import com.jvm123.minio.service.client.MinioClientProvider;
import io.minio.MinioClient;
import io.minio.errors.InvalidEndpointException;
import io.minio.errors.InvalidPortException;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@SpringBootApplication
public class DemoMinioApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoMinioApplication.class, args);
    }

    @Bean
    MinioClientProvider minClient() {
        return (endpoint, accessKey, secretKey) -> {
            try {
                return new MinioClient("http://petdy.cn:9000", "admin", "");
            } catch (InvalidEndpointException | InvalidPortException e) {
                e.printStackTrace();
                return null;
            }
        };
    }
}

如果需要自定义清理缓存逻辑,需要重新实现接口TempCleanService,如下:

/**
 * 清理缓存
 * @author yawn http://jvm123.com
 * 2020/1/18 10:54
 */
public interface TempCleanService {

    void cleanTemp(String tmpDir, Long tmpAliveDuration);
}

而接口中方法的参数就是配置文件中的值。

发表评论