From c1036a3df288855348a0e9a085f269b3037d85f7 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期五, 17 二月 2023 22:45:08 +0800 Subject: [PATCH] fix 修复 TenantSaTokenDao 内部调用导致 key 错误问题 --- ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/factory/OssFactory.java | 44 ++++++++++++++------------------------------ 1 files changed, 14 insertions(+), 30 deletions(-) diff --git a/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/factory/OssFactory.java b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/factory/OssFactory.java index a47e949..82467ef 100644 --- a/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/factory/OssFactory.java +++ b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/factory/OssFactory.java @@ -1,8 +1,8 @@ package com.ruoyi.common.oss.factory; import com.ruoyi.common.core.constant.CacheNames; -import com.ruoyi.common.core.utils.JsonUtils; import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.json.utils.JsonUtils; import com.ruoyi.common.oss.constant.OssConstant; import com.ruoyi.common.oss.core.OssClient; import com.ruoyi.common.oss.exception.OssException; @@ -25,21 +25,6 @@ private static final Map<String, OssClient> CLIENT_CACHE = new ConcurrentHashMap<>(); /** - * 鍒濆鍖栧伐鍘� - */ - public static void init() { - log.info("鍒濆鍖朞SS宸ュ巶"); - RedisUtils.subscribe(OssConstant.DEFAULT_CONFIG_KEY, String.class, configKey -> { - OssClient client = getClient(configKey); - // 鏈垵濮嬪寲涓嶅鐞� - if (client != null) { - refresh(configKey); - log.info("璁㈤槄鍒锋柊OSS閰嶇疆 => " + configKey); - } - }); - } - - /** * 鑾峰彇榛樿瀹炰緥 */ public static OssClient instance() { @@ -55,25 +40,24 @@ * 鏍规嵁绫诲瀷鑾峰彇瀹炰緥 */ public static OssClient instance(String configKey) { - OssClient client = getClient(configKey); - if (client == null) { - refresh(configKey); - return getClient(configKey); - } - return client; - } - - private static void refresh(String configKey) { String json = CacheUtils.get(CacheNames.SYS_OSS_CONFIG, configKey); if (json == null) { throw new OssException("绯荤粺寮傚父, '" + configKey + "'閰嶇疆淇℃伅涓嶅瓨鍦�!"); } OssProperties properties = JsonUtils.parseObject(json, OssProperties.class); - CLIENT_CACHE.put(configKey, new OssClient(configKey, properties)); - } - - private static OssClient getClient(String configKey) { - return CLIENT_CACHE.get(configKey); + OssClient client = CLIENT_CACHE.get(configKey); + if (client == null) { + CLIENT_CACHE.put(configKey, new OssClient(configKey, properties)); + log.info("鍒涘缓OSS瀹炰緥 key => {}", configKey); + return CLIENT_CACHE.get(configKey); + } + // 閰嶇疆涓嶇浉鍚屽垯閲嶆柊鏋勫缓 + if (!client.checkPropertiesSame(properties)) { + CLIENT_CACHE.put(configKey, new OssClient(configKey, properties)); + log.info("閲嶈浇OSS瀹炰緥 key => {}", configKey); + return CLIENT_CACHE.get(configKey); + } + return client; } } -- Gitblit v1.9.3