From 8f3a1b589eebabc9d6a29b7cd8bc630fe40aec09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=8B=E8=BE=9E=E6=9C=AA=E5=AF=92?= <545073804@qq.com> Date: Tue, 12 Aug 2025 16:37:06 +0800 Subject: [PATCH] =?UTF-8?q?upadte=20=E4=BC=98=E5=8C=96OSS=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=B8=8B=E8=BD=BD=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/common/oss/core/OssClient.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java b/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java index 6ced41b52..b9a90dc75 100644 --- a/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java +++ b/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java @@ -2,6 +2,7 @@ package org.dromara.common.oss.core; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.IdUtil; +import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.constant.Constants; import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.StringUtils; @@ -41,6 +42,7 @@ import java.util.function.Consumer; * * @author AprilWind */ +@Slf4j public class OssClient { /** @@ -279,19 +281,19 @@ public class OssClient { // 构建写出订阅器对象 return out -> { - // 注意,此处不需要显式关闭 channel ,channel 会在 out 关闭时自动关闭 - WritableByteChannel channel = Channels.newChannel(out); - - // 订阅数据 - publisher.subscribe(byteBuffer -> { - try { + // 创建可写入的字节通道 + try(WritableByteChannel channel = Channels.newChannel(out)){ + // 订阅数据 + publisher.subscribe(byteBuffer -> { while (byteBuffer.hasRemaining()) { - channel.write(byteBuffer); + try { + channel.write(byteBuffer); + } catch (IOException e) { + throw new RuntimeException(e); + } } - } catch (IOException e) { - throw new RuntimeException(e); - } - }).join(); + }).join(); + } }; } catch (Exception e) { throw new OssException("文件下载失败,错误信息:[" + e.getMessage() + "]");