feat(minio工具类): minio工具类完成
This commit is contained in:
parent
670250a6d3
commit
512d67d7d3
|
@ -10,4 +10,10 @@ public class MinioMessageConstant {
|
|||
public static final String QUERY_BUCKET_EXCEPTION = "查询文件信息失败";
|
||||
public static final String CREATE_BUCKET_EXCEPTION = "创建文件对象失败";
|
||||
public static final String UPDATE_BUCKET_EXCEPTION = "更新文件对象失败";
|
||||
public static final String COMPOSE_OBJECT_EXCEPTION = "对象错误";
|
||||
public static final String COPY_BUCKET_EXCEPTION = "复制文件内容失败";
|
||||
public static final String DISABLE_BUCKET_EXCEPTION = "禁用文件失败";
|
||||
public static final String ENABLE_BUCKET_EXCEPTION = "启用文件失败";
|
||||
public static final String DOWNLOAD_BUCKET_EXCEPTION = "下载文件失败";
|
||||
public static final String UPLOAD_BUCKET_EXCEPTION = "上传文件失败";
|
||||
}
|
||||
|
|
|
@ -13,8 +13,8 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Minio操作工具类
|
||||
* 简化操作步骤
|
||||
* Minio操作工具类 简化操作步骤
|
||||
* By:Bunny0212
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
|
@ -44,13 +44,11 @@ public class MinioUtil {
|
|||
* 删除桶的加密配置
|
||||
*
|
||||
* @param bucketName 桶名称
|
||||
* @return 是否删除成功,返回布尔值
|
||||
*/
|
||||
public boolean deleteBucketEncryption(String bucketName) {
|
||||
public void deleteBucketEncryption(String bucketName) {
|
||||
try {
|
||||
minioClient.deleteBucketEncryption(DeleteBucketEncryptionArgs.builder().build());
|
||||
log.info("删除桶的加密配置 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("删除桶的加密配置 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -62,13 +60,11 @@ public class MinioUtil {
|
|||
* 删除桶的生命周期配置
|
||||
*
|
||||
* @param bucketName 桶名称
|
||||
* @return 返回布尔值,是否删除成功
|
||||
*/
|
||||
public boolean deleteBucketLifecycle(String bucketName) {
|
||||
public void deleteBucketLifecycle(String bucketName) {
|
||||
try {
|
||||
minioClient.deleteBucketLifecycle(DeleteBucketLifecycleArgs.builder().build());
|
||||
log.info("删除桶的生命周期配置 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("删除桶的生命周期配置 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -80,13 +76,11 @@ public class MinioUtil {
|
|||
* 删除桶的通知配置
|
||||
*
|
||||
* @param bucketName 桶的名称
|
||||
* @return 返回布尔值是否删除成功
|
||||
*/
|
||||
public boolean deleteBucketNotification(String bucketName) {
|
||||
public void deleteBucketNotification(String bucketName) {
|
||||
try {
|
||||
minioClient.deleteBucketNotification(DeleteBucketNotificationArgs.builder().bucket(bucketName).build());
|
||||
log.info("删除桶的通知配置 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("删除桶的加密配置 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -98,13 +92,11 @@ public class MinioUtil {
|
|||
* 删除桶策略配置
|
||||
*
|
||||
* @param bucketName 桶的名称
|
||||
* @return 返回布尔值是否删除成功
|
||||
*/
|
||||
public boolean deleteBucketPolicy(String bucketName) {
|
||||
public void deleteBucketPolicy(String bucketName) {
|
||||
try {
|
||||
minioClient.deleteBucketPolicy(DeleteBucketPolicyArgs.builder().bucket(bucketName).build());
|
||||
log.info("删除桶中的对象锁配置 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("删除桶的加密配置 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -116,13 +108,11 @@ public class MinioUtil {
|
|||
* 删除桶的桶复制配置
|
||||
*
|
||||
* @param bucketName 桶的名称
|
||||
* @return 返回布尔值是否删除成功
|
||||
*/
|
||||
public boolean deleteBucketReplication(String bucketName) {
|
||||
public void deleteBucketReplication(String bucketName) {
|
||||
try {
|
||||
minioClient.deleteBucketReplication(DeleteBucketReplicationArgs.builder().bucket(bucketName).build());
|
||||
log.info("删除桶的桶复制配置 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("删除桶的桶复制配置 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -134,13 +124,11 @@ public class MinioUtil {
|
|||
* 删除桶的标签
|
||||
*
|
||||
* @param bucketName 桶的名称
|
||||
* @return 返回布尔值是否删除成功
|
||||
*/
|
||||
public boolean deleteBucketTags(String bucketName) {
|
||||
public void deleteBucketTags(String bucketName) {
|
||||
try {
|
||||
minioClient.deleteBucketTags(DeleteBucketTagsArgs.builder().bucket(bucketName).build());
|
||||
log.info("删除桶的标签 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("删除桶的桶复制配置 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -152,13 +140,11 @@ public class MinioUtil {
|
|||
* 删除桶中的对象锁配置
|
||||
*
|
||||
* @param bucketName 桶的名称
|
||||
* @return 返回布尔值是否删除成功
|
||||
*/
|
||||
public boolean deleteObjectLockConfiguration(String bucketName) {
|
||||
public void deleteObjectLockConfiguration(String bucketName) {
|
||||
try {
|
||||
minioClient.deleteObjectLockConfiguration(DeleteObjectLockConfigurationArgs.builder().bucket(bucketName).build());
|
||||
log.info("删除桶中的对象锁配置 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("删除桶中的对象锁配置 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -355,13 +341,11 @@ public class MinioUtil {
|
|||
* 创建桶
|
||||
*
|
||||
* @param bucketName 桶的名称
|
||||
* @return boolean 返回是否创建成功
|
||||
*/
|
||||
public boolean makeBucket(String bucketName) {
|
||||
public void makeBucket(String bucketName) {
|
||||
try {
|
||||
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
|
||||
log.info("创建桶 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("创建桶 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -373,13 +357,11 @@ public class MinioUtil {
|
|||
* 创建桶
|
||||
*
|
||||
* @param bucketName 桶的名称
|
||||
* @return boolean 返回是否创建成功
|
||||
*/
|
||||
public boolean makeBucket(String bucketName, String region) {
|
||||
public void makeBucket(String bucketName, String region) {
|
||||
try {
|
||||
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).region(region).build());
|
||||
log.info("创建桶 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("创建桶 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -391,13 +373,11 @@ public class MinioUtil {
|
|||
* 创建桶
|
||||
*
|
||||
* @param bucketName 桶的名称
|
||||
* @return boolean 返回是否创建成功
|
||||
*/
|
||||
public boolean makeBucket(String bucketName, String region, boolean objectLock) {
|
||||
public void makeBucket(String bucketName, String region, boolean objectLock) {
|
||||
try {
|
||||
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).region(region).objectLock(objectLock).build());
|
||||
log.info("创建桶 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("创建桶 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -409,13 +389,11 @@ public class MinioUtil {
|
|||
* 删除桶
|
||||
*
|
||||
* @param bucketName 桶的名称
|
||||
* @return boolean 是否删除成功
|
||||
*/
|
||||
public boolean removeBucket(String bucketName) {
|
||||
public void removeBucket(String bucketName) {
|
||||
try {
|
||||
minioClient.removeBucket(RemoveBucketArgs.builder().bucket(bucketName).build());
|
||||
log.info("删除桶 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("删除桶 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -428,16 +406,11 @@ public class MinioUtil {
|
|||
*
|
||||
* @param bucketName 同名称
|
||||
* @param configuration 配置信息
|
||||
* @return 布尔值是否完成
|
||||
*/
|
||||
public boolean setBucketEncryption(String bucketName, SseConfiguration configuration) {
|
||||
public void setBucketEncryption(String bucketName, SseConfiguration configuration) {
|
||||
try {
|
||||
minioClient.setBucketEncryption(SetBucketEncryptionArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.config(configuration)
|
||||
.build());
|
||||
minioClient.setBucketEncryption(SetBucketEncryptionArgs.builder().bucket(bucketName).config(configuration).build());
|
||||
log.info("设置桶的加密配置 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("设置桶的加密配置 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -450,13 +423,11 @@ public class MinioUtil {
|
|||
*
|
||||
* @param bucketName 同名称
|
||||
* @param policyJson 配置信息
|
||||
* @return 布尔值是否完成
|
||||
*/
|
||||
public boolean setBucketPolicy(String bucketName, String policyJson) {
|
||||
public void setBucketPolicy(String bucketName, String policyJson) {
|
||||
try {
|
||||
minioClient.setBucketPolicy(SetBucketPolicyArgs.builder().bucket(bucketName).config(policyJson).build());
|
||||
log.info("查看桶策略 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("查看桶策略 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -471,11 +442,10 @@ public class MinioUtil {
|
|||
* @param config 配置信息
|
||||
* @return 布尔值是否完成
|
||||
*/
|
||||
public boolean setBucketReplication(String bucketName, ReplicationConfiguration config) {
|
||||
public void setBucketReplication(String bucketName, ReplicationConfiguration config) {
|
||||
try {
|
||||
minioClient.setBucketReplication(SetBucketReplicationArgs.builder().bucket(bucketName).config(config).build());
|
||||
log.info("设置桶复制参数 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("设置桶复制参数 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -487,14 +457,12 @@ public class MinioUtil {
|
|||
* 设置/修改桶标签
|
||||
*
|
||||
* @param bucketName 桶名称
|
||||
* @param map Map<String, String> map集合
|
||||
* @return 布尔值是否完成
|
||||
* @param map 标签集合
|
||||
*/
|
||||
public boolean setBucketTags(String bucketName, Map<String, String> map) {
|
||||
public void setBucketTags(String bucketName, Map<String, String> map) {
|
||||
try {
|
||||
minioClient.setBucketTags(SetBucketTagsArgs.builder().bucket(bucketName).tags(map).build());
|
||||
log.info("设置/修改桶标签 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("设置/修改桶标签 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -506,15 +474,13 @@ public class MinioUtil {
|
|||
* 设置桶的版本配置
|
||||
*
|
||||
* @param bucketName 同名称
|
||||
* @param configuration VersioningConfiguration 配置信息
|
||||
* @return 布尔值是否完成
|
||||
* @param configuration 配置信息
|
||||
*/
|
||||
public boolean setBucketVersioning(String bucketName, VersioningConfiguration configuration) {
|
||||
public void setBucketVersioning(String bucketName, VersioningConfiguration configuration) {
|
||||
try {
|
||||
minioClient.setBucketVersioning(
|
||||
SetBucketVersioningArgs.builder().bucket(bucketName).config(configuration).build());
|
||||
log.info("设置桶的版本配置 ------ 成功");
|
||||
return true;
|
||||
} catch (Exception exception) {
|
||||
log.error("设置桶的版本配置 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
|
@ -522,8 +488,88 @@ public class MinioUtil {
|
|||
}
|
||||
}
|
||||
|
||||
// TODO setObjectLockConfiguration
|
||||
// TODO https://min.io/docs/minio/linux/developers/java/API.html#getBucketTags
|
||||
/**
|
||||
* 对象对象锁定配置
|
||||
*
|
||||
* @param bucketName 同名称
|
||||
* @param configuration 配置信息
|
||||
*/
|
||||
public void setObjectLockConfiguration(String bucketName, ObjectLockConfiguration configuration) {
|
||||
try {
|
||||
minioClient.setObjectLockConfiguration(SetObjectLockConfigurationArgs.builder().bucket(bucketName).config(configuration).build());
|
||||
log.info("对象对象锁定配置 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
log.error("对象对象锁定配置 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.UPDATE_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 组合对象
|
||||
*
|
||||
* @param bucketName 同名称
|
||||
* @param objectName 对象名称
|
||||
* @param sources 对象列表
|
||||
*/
|
||||
public void composeObject(String bucketName, String objectName, List<ComposeSource> sources) {
|
||||
try {
|
||||
minioClient.composeObject(ComposeObjectArgs.builder().bucket(bucketName).object(objectName).sources(sources).build());
|
||||
log.info("组合对象 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
log.error("组合对象 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.COMPOSE_OBJECT_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 组合对象
|
||||
*
|
||||
* @param bucketName 同名称
|
||||
* @param objectName 对象名称
|
||||
* @param sources 对象列表
|
||||
* @param userMetadata 用户元数据
|
||||
*/
|
||||
public void composeObject(String bucketName, String objectName, List<ComposeSource> sources, Map<String, String> userMetadata) {
|
||||
try {
|
||||
minioClient.composeObject(ComposeObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.sources(sources)
|
||||
.userMetadata(userMetadata).build());
|
||||
log.info("组合对象 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
log.error("组合对象 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.COMPOSE_OBJECT_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 组合对象
|
||||
*
|
||||
* @param bucketName 同名称
|
||||
* @param objectName 对象名称
|
||||
* @param sources 对象列表
|
||||
* @param userMetadata 用户元数据
|
||||
* @param sideEncryption 通过组合源对象列表
|
||||
*/
|
||||
public void composeObject(String bucketName, String objectName, List<ComposeSource> sources, Map<String, String> userMetadata, ServerSideEncryption sideEncryption) {
|
||||
try {
|
||||
minioClient.composeObject(ComposeObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.sources(sources)
|
||||
.userMetadata(userMetadata)
|
||||
.sse(sideEncryption).build());
|
||||
log.info("组合对象 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
log.error("组合对象 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.COMPOSE_OBJECT_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 复制另一个桶中文件
|
||||
|
@ -532,67 +578,121 @@ public class MinioUtil {
|
|||
* @param objectName 复制名称
|
||||
* @param sourceBucketName 复制到桶中名称
|
||||
* @param sourceObjectName 复制完成后名称
|
||||
* @return 布尔值是否完成
|
||||
*/
|
||||
public boolean copyObject(String bucketName, String objectName, String sourceBucketName, String sourceObjectName) {
|
||||
boolean isComplete = false;
|
||||
|
||||
public void copyObject(String bucketName, String objectName, String sourceBucketName, String sourceObjectName) {
|
||||
try {
|
||||
minioClient.copyObject(
|
||||
CopyObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.source(
|
||||
CopySource.builder()
|
||||
.bucket(sourceBucketName)
|
||||
.object(sourceObjectName)
|
||||
.build())
|
||||
.build());
|
||||
isComplete = true;
|
||||
minioClient.copyObject(CopyObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.source(CopySource.builder().bucket(sourceBucketName).object(sourceObjectName).build())
|
||||
.build());
|
||||
log.info("复制另一个桶中文件 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
exception.printStackTrace();
|
||||
log.error("复制另一个桶中文件 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.COPY_BUCKET_EXCEPTION);
|
||||
}
|
||||
|
||||
return isComplete;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除对象的标记。
|
||||
* 复制另一个桶中文件
|
||||
*
|
||||
* @param bucketName 桶中名字
|
||||
* @param objectName 复制名称
|
||||
* @param sourceBucketName 复制到桶中名称
|
||||
* @param sourceObjectName 复制完成后名称
|
||||
* @param sideEncryption 加密key
|
||||
*/
|
||||
public void copyObject(String bucketName, String objectName, String sourceBucketName, String sourceObjectName, ServerSideEncryption sideEncryption) {
|
||||
try {
|
||||
minioClient.copyObject(CopyObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.source(CopySource.builder().bucket(sourceBucketName).object(sourceObjectName).build())
|
||||
.sse(sideEncryption)
|
||||
.build());
|
||||
log.info("复制另一个桶中文件 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
log.error("复制另一个桶中文件 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.COPY_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 复制另一个桶中文件
|
||||
*
|
||||
* @param bucketName 桶中名字
|
||||
* @param objectName 复制名称
|
||||
* @param sourceBucketName 复制到桶中名称
|
||||
* @param sourceObjectName 复制完成后名称
|
||||
* @param etag 标签
|
||||
* @param headers 头部信息
|
||||
*/
|
||||
public void copyObject(String bucketName, String objectName, String sourceBucketName, String sourceObjectName, String etag, Map<String, String> headers) {
|
||||
try {
|
||||
minioClient.copyObject(CopyObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.source(CopySource.builder().bucket(sourceBucketName).object(sourceObjectName).matchETag(etag).build())
|
||||
.headers(headers)
|
||||
.build());
|
||||
log.info("复制另一个桶中文件 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
log.error("复制另一个桶中文件 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.COPY_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除对象的标记
|
||||
*
|
||||
* @param bucketName 桶中名字
|
||||
* @param objectName 复制名称
|
||||
* @return 布尔值是否完成
|
||||
*/
|
||||
public boolean deleteObjectTags(String bucketName, String objectName) {
|
||||
boolean isComplete = false;
|
||||
|
||||
public void deleteObjectTags(String bucketName, String objectName) {
|
||||
try {
|
||||
minioClient.deleteObjectTags(DeleteObjectTagsArgs.builder().bucket(bucketName).object(objectName).build());
|
||||
isComplete = true;
|
||||
log.info("删除对象的标记 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
exception.printStackTrace();
|
||||
log.error("删除对象的标记 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.DELETE_BUCKET_EXCEPTION);
|
||||
}
|
||||
|
||||
return isComplete;
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载文件
|
||||
* 禁用对象
|
||||
*
|
||||
* @param bucketName 桶名称
|
||||
* @param objectName 对象名称
|
||||
* @param filename 文件名
|
||||
* @param bucketName 桶中名字
|
||||
* @param objectName 复制名称
|
||||
*/
|
||||
public void downloadObject(String bucketName, String objectName, String filename) {
|
||||
public void disableObjectLegalHold(String bucketName, String objectName) {
|
||||
try {
|
||||
minioClient.downloadObject(
|
||||
DownloadObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.filename(filename)
|
||||
.build());
|
||||
minioClient.disableObjectLegalHold(DisableObjectLegalHoldArgs.builder().bucket(bucketName).object(objectName).build());
|
||||
log.info("禁用对象 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
exception.printStackTrace();
|
||||
log.error("禁用对象 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.DISABLE_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 启用文件对象
|
||||
*
|
||||
* @param bucketName 桶中名字
|
||||
* @param objectName 复制名称
|
||||
*/
|
||||
public void enableObjectLegalHold(String bucketName, String objectName) {
|
||||
try {
|
||||
minioClient.enableObjectLegalHold(EnableObjectLegalHoldArgs.builder().bucket(bucketName).object(objectName).build());
|
||||
log.info("禁用对象 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
log.error("禁用对象 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.ENABLE_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -604,13 +704,89 @@ public class MinioUtil {
|
|||
*/
|
||||
public InputStream getObject(String bucketName, String objectName) {
|
||||
try {
|
||||
return minioClient.getObject(GetObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.build());
|
||||
GetObjectResponse object = minioClient.getObject(GetObjectArgs.builder().bucket(bucketName).object(objectName).build());
|
||||
log.info("获取文件 ------ 成功");
|
||||
return object;
|
||||
} catch (Exception exception) {
|
||||
exception.printStackTrace();
|
||||
return null; // 或者抛出自定义异常
|
||||
log.error("获取文件 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.GET_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载文件
|
||||
*
|
||||
* @param bucketName 桶名称
|
||||
* @param objectName 对象名称
|
||||
* @param filename 文件名
|
||||
*/
|
||||
public void downloadObject(String bucketName, String objectName, String filename) {
|
||||
try {
|
||||
minioClient.downloadObject(DownloadObjectArgs.builder().bucket(bucketName).object(objectName).filename(filename).build());
|
||||
log.info("下载文件 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
log.error("下载文件 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.DOWNLOAD_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载文件
|
||||
*
|
||||
* @param bucketName 桶名称
|
||||
* @param objectName 对象名称
|
||||
* @param filename 文件名
|
||||
* @param sideEncryption 秘钥
|
||||
*/
|
||||
public void downloadObject(String bucketName, String objectName, String filename, ServerSideEncryptionCustomerKey sideEncryption) {
|
||||
try {
|
||||
minioClient.downloadObject(DownloadObjectArgs.builder().bucket(bucketName).object(objectName).filename(filename).ssec(sideEncryption).build());
|
||||
log.info("下载文件 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
log.error("下载文件 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.DOWNLOAD_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取对象保留
|
||||
*
|
||||
* @param bucketName 桶名称
|
||||
* @param objectName 对象名称
|
||||
* @param versionId 版本ID
|
||||
* @return 对象保留
|
||||
*/
|
||||
public Retention getObjectRetention(String bucketName, String objectName, String versionId) {
|
||||
try {
|
||||
Retention retention = minioClient.getObjectRetention(GetObjectRetentionArgs.builder().bucket(bucketName).object(objectName).versionId(versionId).build());
|
||||
log.info("获取对象保留 ------ 成功");
|
||||
return retention;
|
||||
} catch (Exception exception) {
|
||||
log.error("获取对象保留 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.DOWNLOAD_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取对象标签
|
||||
*
|
||||
* @param bucketName 桶名称
|
||||
* @param objectName 对象名称
|
||||
* @return 对象保留
|
||||
*/
|
||||
public Tags getObjectTags(String bucketName, String objectName) {
|
||||
try {
|
||||
Tags tags = minioClient.getObjectTags(GetObjectTagsArgs.builder().bucket(bucketName).object(objectName).build());
|
||||
log.info("获取对象标签 ------ 成功");
|
||||
return tags;
|
||||
} catch (Exception exception) {
|
||||
log.error("获取对象标签 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.GET_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -624,17 +800,15 @@ public class MinioUtil {
|
|||
*/
|
||||
public void putObject(String bucketName, String filename, InputStream inputStream, Long size) {
|
||||
try {
|
||||
minioClient.putObject(
|
||||
PutObjectArgs.builder().bucket(bucketName)
|
||||
.object(filename)
|
||||
.stream(inputStream, size, -1)
|
||||
.build());
|
||||
minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(filename).stream(inputStream, size, -1).build());
|
||||
log.info("上传文件 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
exception.printStackTrace();
|
||||
log.error("上传文件 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.UPLOAD_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
*
|
||||
|
@ -646,14 +820,35 @@ public class MinioUtil {
|
|||
*/
|
||||
public void putObject(String bucketName, String filename, String contentType, InputStream inputStream, Long size) {
|
||||
try {
|
||||
minioClient.putObject(
|
||||
PutObjectArgs.builder().bucket(bucketName)
|
||||
.object(filename)
|
||||
.stream(inputStream, size, -1)
|
||||
.contentType(contentType)
|
||||
.build());
|
||||
minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(filename).stream(inputStream, size, -1).contentType(contentType).build());
|
||||
log.info("上传文件 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
exception.printStackTrace();
|
||||
log.error("上传文件 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.UPLOAD_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
*
|
||||
* @param bucketName 桶名称
|
||||
* @param object 对象信息
|
||||
* @param filename 文件名
|
||||
* @param contentType 文件类型
|
||||
*/
|
||||
public void putObject(String bucketName, String object, String filename, String contentType) {
|
||||
try {
|
||||
if (contentType != null) {
|
||||
minioClient.uploadObject(UploadObjectArgs.builder().bucket(bucketName).object(filename).contentType(contentType).build());
|
||||
} else {
|
||||
minioClient.uploadObject(UploadObjectArgs.builder().bucket(bucketName).object(filename).build());
|
||||
}
|
||||
log.info("上传文件 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
log.error("上传文件 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.UPLOAD_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -665,13 +860,123 @@ public class MinioUtil {
|
|||
*/
|
||||
public void removeObject(String bucketName, String objectName) {
|
||||
try {
|
||||
minioClient.removeObject(
|
||||
RemoveObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.build());
|
||||
minioClient.removeObject(RemoveObjectArgs.builder().bucket(bucketName).object(objectName).build());
|
||||
log.info("删除文件 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
exception.printStackTrace();
|
||||
log.error("删除文件 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.DELETE_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除文件
|
||||
*
|
||||
* @param bucketName 桶名称
|
||||
* @param objectName 对象名称
|
||||
* @param versionId 版本号
|
||||
*/
|
||||
public void removeObject(String bucketName, String objectName, String versionId) {
|
||||
try {
|
||||
minioClient.removeObject(RemoveObjectArgs.builder().bucket(bucketName).object(objectName).versionId(versionId).build());
|
||||
log.info("删除文件 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
log.error("删除文件 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.DELETE_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除文件
|
||||
*
|
||||
* @param bucketName 桶名称
|
||||
* @param objectName 对象名称
|
||||
* @param bypassRetentionMode 保持模式
|
||||
*/
|
||||
public void removeObject(String bucketName, String objectName, String versionId, boolean bypassRetentionMode) {
|
||||
try {
|
||||
minioClient.removeObject(RemoveObjectArgs.builder().bucket(bucketName).object(objectName).versionId(versionId).bypassGovernanceMode(bypassRetentionMode).build());
|
||||
log.info("删除文件 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
log.error("删除文件 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.DELETE_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传多文件,通过创建中间TAR文件(可选压缩)来完成的
|
||||
*
|
||||
* @param bucketName 桶名称
|
||||
* @param objects 对象名称
|
||||
*/
|
||||
public void uploadSnowballObjects(String bucketName, List<SnowballObject> objects) {
|
||||
try {
|
||||
minioClient.uploadSnowballObjects(UploadSnowballObjectsArgs.builder().bucket(bucketName).objects(objects).build());
|
||||
log.info("上传多文件 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
log.error("上传多文件 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.UPLOAD_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置对象标签
|
||||
*
|
||||
* @param bucketName 桶名称
|
||||
* @param objectName 对象名称
|
||||
* @param retention 配置信息
|
||||
* @param bypassGovernanceMode 保持模式
|
||||
*/
|
||||
public void setObjectLockRetention(String bucketName, String objectName, Retention retention, boolean bypassGovernanceMode) {
|
||||
try {
|
||||
minioClient.setObjectRetention(SetObjectRetentionArgs.builder().bucket(bucketName).object(objectName).config(retention).bypassGovernanceMode(bypassGovernanceMode).build());
|
||||
log.info("删除文件 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
log.error("删除文件 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.UPDATE_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置对象标签
|
||||
*
|
||||
* @param bucketName 桶名称
|
||||
* @param objectName 对象名称
|
||||
* @param map 对象集合
|
||||
*/
|
||||
public void setObjectTags(String bucketName, String objectName, Map<String, String> map) {
|
||||
try {
|
||||
minioClient.setObjectTags(SetObjectTagsArgs.builder().bucket(bucketName).object(objectName).tags(map).build());
|
||||
log.info("删除文件 ------ 成功");
|
||||
} catch (Exception exception) {
|
||||
log.error("删除文件 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.UPDATE_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取对象状态
|
||||
*
|
||||
* @param bucketName 桶名称
|
||||
* @param objectName 对象名称
|
||||
* @param versionId 版本ID
|
||||
* @param customerKey 秘钥
|
||||
* @return 对象信息
|
||||
*/
|
||||
public StatObjectResponse statObject(String bucketName, String objectName, String versionId, ServerSideEncryptionCustomerKey customerKey) {
|
||||
try {
|
||||
StatObjectResponse statObjectResponse = minioClient.statObject(StatObjectArgs.builder().bucket(bucketName).object(objectName).versionId(versionId).ssec(customerKey).build());
|
||||
log.info("获取对象状态 ------ 成功");
|
||||
return statObjectResponse;
|
||||
} catch (Exception exception) {
|
||||
log.error("获取对象状态 ------ 失败消息:{}", exception.getLocalizedMessage());
|
||||
exception.getStackTrace();
|
||||
throw new BunnyException(MinioMessageConstant.DELETE_BUCKET_EXCEPTION);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue