From a71efab4177a9a296649b281cc252041fdb9212e Mon Sep 17 00:00:00 2001 From: lizhenhua <1075222162@qq.com> Date: Mon, 10 Nov 2025 14:52:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=89=E5=85=B3=E5=86=85=E7=BD=91=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/bonus/file/config/MinioConfig.java | 5 +++++ .../java/com/bonus/file/utils/MinioUtil.java | 21 +++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/bonus-modules/bonus-file/src/main/java/com/bonus/file/config/MinioConfig.java b/bonus-modules/bonus-file/src/main/java/com/bonus/file/config/MinioConfig.java index 0c80e92..f664bd6 100644 --- a/bonus-modules/bonus-file/src/main/java/com/bonus/file/config/MinioConfig.java +++ b/bonus-modules/bonus-file/src/main/java/com/bonus/file/config/MinioConfig.java @@ -37,6 +37,11 @@ public class MinioConfig * 存储桶名称 */ private String bucketName; + /** + * + * 内网IP地址 + */ + private String endpointInter; @Bean public MinioClient getMinioClient() diff --git a/bonus-modules/bonus-file/src/main/java/com/bonus/file/utils/MinioUtil.java b/bonus-modules/bonus-file/src/main/java/com/bonus/file/utils/MinioUtil.java index 142f331..a44f773 100644 --- a/bonus-modules/bonus-file/src/main/java/com/bonus/file/utils/MinioUtil.java +++ b/bonus-modules/bonus-file/src/main/java/com/bonus/file/utils/MinioUtil.java @@ -18,6 +18,7 @@ import javax.annotation.Resource; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; +import java.net.InetAddress; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; @@ -303,9 +304,25 @@ public class MinioUtil { if (StringUtils.isNotEmpty(fileUrl)){ if (fileUrl.startsWith("http://")) { return fileUrl; - } else { - return minioConfig.getEndpoint() + "/" + minioConfig.getBucketName() + "/" + fileUrl; } + // 获取当前访问系统的 IP(通过配置或工具方法获取) + String currentIp = InetAddress.getLocalHost().getHostAddress(); + + // 判断访问来源是内网还是外网 + boolean isIntranet = currentIp.startsWith("10."); + + // 根据来源返回不同的访问地址 + String endpoint; + if (isIntranet) { + // 内网访问,比如你给的 10.145.136.229 + endpoint = minioConfig.getEndpointInter(); + } else { + // 外网或局域网访问,比如你给的 192.168.20.234 + endpoint = minioConfig.getEndpoint(); + } + + // 拼接完整路径(MinIO 地址) + return endpoint + "/" + minioConfig.getBucketName() + "/" + fileUrl; } else { return ""; }