feat: MinioUtils
This commit is contained in:
parent
7660a1a9ad
commit
1bfac2bc10
|
@ -56,5 +56,16 @@
|
||||||
<groupId>com.github.wechatpay-apiv3</groupId>
|
<groupId>com.github.wechatpay-apiv3</groupId>
|
||||||
<artifactId>wechatpay-apache-httpclient</artifactId>
|
<artifactId>wechatpay-apache-httpclient</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!-- minio -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.minio</groupId>
|
||||||
|
<artifactId>minio</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sky</groupId>
|
||||||
|
<artifactId>sky-server</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
|
@ -0,0 +1,112 @@
|
||||||
|
package com.sky.common.utils;
|
||||||
|
|
||||||
|
|
||||||
|
import com.sky.config.MinioConfig;
|
||||||
|
import io.minio.*;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class MinioUtils {
|
||||||
|
@Resource
|
||||||
|
private MinioClient minioClient;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MinioConfig config;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断桶是否存在
|
||||||
|
*
|
||||||
|
* @param bucketName String
|
||||||
|
* @return found
|
||||||
|
*/
|
||||||
|
public boolean bucketExists(String bucketName) {
|
||||||
|
boolean found = false;
|
||||||
|
try {
|
||||||
|
found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 如果桶不存在就新建
|
||||||
|
*
|
||||||
|
* @param bucketName String
|
||||||
|
*/
|
||||||
|
public void bucketCreate(String bucketName) {
|
||||||
|
boolean exists = bucketExists(bucketName);
|
||||||
|
if (!exists) {
|
||||||
|
try {
|
||||||
|
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传文件
|
||||||
|
*
|
||||||
|
* @param fileName 文件名
|
||||||
|
* @param inputStream 输入流
|
||||||
|
* @param size 文件大小
|
||||||
|
*/
|
||||||
|
public String uploadFile(String bucketName, String fileName, InputStream inputStream, Long size) {
|
||||||
|
try {
|
||||||
|
minioClient.putObject(PutObjectArgs.builder()
|
||||||
|
.bucket(bucketName)
|
||||||
|
.object(fileName)
|
||||||
|
.stream(inputStream, size, -1)
|
||||||
|
.build());
|
||||||
|
return config.getEndpointUrl() + "/" + bucketName + "/" + fileName;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传文件
|
||||||
|
*
|
||||||
|
* @param fileName 文件名
|
||||||
|
* @param inputStream 输入流
|
||||||
|
* @param size 文件大小
|
||||||
|
* @param contentType 文件类型
|
||||||
|
*/
|
||||||
|
public String uploadFile(String bucketName, String fileName, InputStream inputStream, Long size, String contentType) {
|
||||||
|
try {
|
||||||
|
minioClient.putObject(PutObjectArgs.builder()
|
||||||
|
.bucket(bucketName)
|
||||||
|
.object(fileName)
|
||||||
|
.stream(inputStream, size, -1)
|
||||||
|
.contentType(contentType)
|
||||||
|
.build());
|
||||||
|
return config.getEndpointUrl() + "/" + bucketName + "/" + fileName;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取文件
|
||||||
|
*
|
||||||
|
* @param bucketName 桶名称
|
||||||
|
* @param fileName 对象名称
|
||||||
|
*/
|
||||||
|
public InputStream getFile(String bucketName, String fileName) {
|
||||||
|
try {
|
||||||
|
return minioClient.getObject(GetObjectArgs.builder()
|
||||||
|
.bucket(bucketName)
|
||||||
|
.object(fileName)
|
||||||
|
.build());
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.sky.config;
|
||||||
|
|
||||||
|
import io.minio.MinioClient;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Configuration
|
||||||
|
@ConfigurationProperties(prefix = "sky.minio")
|
||||||
|
public class MinioConfig {
|
||||||
|
private String endpointUrl;
|
||||||
|
private String accessKey;
|
||||||
|
private String secretKey;
|
||||||
|
private String bucketName;
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public MinioClient minioClient() {
|
||||||
|
return MinioClient.builder().endpoint(endpointUrl).credentials(accessKey, secretKey).build();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue