springboot2.x + minio7.0.2
本文记录 minio的调用关键步骤和关键文档. 主要记录大文件分片上传和文件合并记录
- minio官网地址 http://www.minio.org.cn
- minio 安装参考官网说明
- mino 文件加密需要https证书. 可以使用签名证书
- minio 服务启动脚本 start.sh
#!/bin/bash
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=admin123
# minio 存放位置
dir=/data/menhu/minio
# https证书位置minio/certs
$dir/minio --certs-dir $dir/certs/ server $dir/data/minio &> $dir/logs/minio.log &
minio 客户端maven配置
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>7.0.2</version>
</dependency>
minio 配置类
/**
* minio 配置类
*
* @author dennis
* @date 2021/5/26
*/
@Component
public class MinioConfig {
@Value("${minio.host:https://play.min.io}")
private String host;
@Value("${minio.accessKey:Q3AM3UQ867SPQQA43P2F}")
private String accessKey;
@Value("${minio.secretKey:zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG}")
private String secretKey;
// 文件是否加密存储
@Value("${minio.encryption:false}")
private Boolean encryption;
@Bean
public MinioClient getMinioClient() {
try {
MinioClient minioClient = new MinioClient(host, accessKey, secretKey);
minioClient.ignoreCertCheck(); //忽略自签名证书有效性
return minioClient;
} catch (Exception e) {
e.printStackTrace();
throw new ValidatorException(e.fillInStackTrace().getMessage());
}
}
/**
* 如何是https环境可以启用 文件加密
* @return
*/
public SecretKey getSecretKey() {
if (encryption && StringUtils.startsWith(host, "https")) {
try {
KeyGenerator aes = KeyGenerator.getInstance("AES");
aes.init(256);
return aes.generateKey();
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
}
minio 工具类
/**
* minio 工具类
*
* @author dennis
* @date 2021/5/26
*/
@Component
public class MinioUtil {
@Autowired
private MinioClient minioClient;
private static final int DEFAULT_