diff --git a/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/s3/client/S3StorageClient.java b/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/s3/client/S3StorageClient.java index ba131e8c5..08ba068fe 100644 --- a/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/s3/client/S3StorageClient.java +++ b/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/s3/client/S3StorageClient.java @@ -26,6 +26,7 @@ import java.util.Collection; import java.util.Map; import java.util.function.BiFunction; import java.util.function.Consumer; +import java.util.function.Function; /** * S3 存储客户端接口。 @@ -381,12 +382,23 @@ public interface S3StorageClient extends AutoCloseable { */ String presignPutUrl(String key, Duration expiredTime, Map metadata); - /** - * 校验客户端配置与传入的配置是否一致 + * 校验客户端配置 * - * @param config 配置 + *

注意:该方法不会修改任何既有的配置和状态,你看可以理解为这仅仅是一个配置展示的方法,以供调用者根据当前的配置,自行决定是否需要重新构建客户端。

+ * + * @param verifyConfigAction 校验配置动作函数 * @return 是否一致 */ - boolean verifyConfig(S3StorageClientConfig config); + boolean verifyConfig(Function verifyConfigAction); + + /** + * 校验客户端配置与传入的待校验配置是否一致 + * + *

注意:该方法不会修改任何既有的配置和状态,你看可以理解为这仅仅是一个配置展示的方法,以供调用者根据当前的配置,自行决定是否需要重新构建客户端。

+ * + * @param verifyConfig 待校验的配置 + * @return 是否一致 + */ + boolean verifyConfig(S3StorageClientConfig verifyConfig); } diff --git a/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/s3/client/S3StorageClientImpl.java b/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/s3/client/S3StorageClientImpl.java index 2f3f68a13..103a2d772 100644 --- a/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/s3/client/S3StorageClientImpl.java +++ b/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/s3/client/S3StorageClientImpl.java @@ -34,6 +34,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.function.BiFunction; import java.util.function.Consumer; +import java.util.function.Function; /** * S3 存储客户端实现类。 @@ -396,8 +397,14 @@ public class S3StorageClientImpl implements S3StorageClient { } @Override - public boolean verifyConfig(S3StorageClientConfig config) { - return Objects.equals(this.config,config); + public boolean verifyConfig(Function verifyConfigAction) { + S3StorageClientConfig copy = S3StorageClientConfig.copy(config); + return Boolean.TRUE.equals(verifyConfigAction.apply(copy)); + } + + @Override + public boolean verifyConfig(S3StorageClientConfig verifyConfig) { + return verifyConfig(config -> Objects.equals(config,verifyConfig)); } @Override