From 24681c81c09022f584a57006f2534b5f74723414 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 30 六月 2026 09:27:31 +0800
Subject: [PATCH] 初始化项目

---
 yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/framework/file/core/client/s3/S3FileClient.java |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/framework/file/core/client/s3/S3FileClient.java b/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/framework/file/core/client/s3/S3FileClient.java
index aad9007..98d37d8 100644
--- a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/framework/file/core/client/s3/S3FileClient.java
+++ b/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/framework/file/core/client/s3/S3FileClient.java
@@ -116,13 +116,18 @@
     @Override
     public String presignGetUrl(String url, Integer expirationSeconds) {
         // 1. 灏� url 杞崲涓� path
-        String path = StrUtil.removePrefix(url, config.getDomain() + "/");
-        path = HttpUtils.decodeUrlPath(HttpUtils.removeUrlQuery(path));
+        // 瀹屾暣 Domain URL 浼氳В鐮佽繕鍘熶负鍘熷瀵硅薄鍚嶏紱瑁� path 绾﹀畾宸茬粡鏄湭缂栫爜鐨勫璞″悕
+        boolean domainUrl = StrUtil.startWith(url, config.getDomain() + "/");
+        String path = domainUrl ? StrUtil.removePrefix(url, config.getDomain() + "/") : url;
+        if (domainUrl) {
+            path = HttpUtils.removeUrlPathQueryAndFragment(path);
+            path = HttpUtils.decodeUrlPath(path);
+        }
 
         // 2.1 鎯呭喌涓�锛氬叕寮�璁块棶锛氭棤闇�绛惧悕
         // 鑰冭檻鍒拌�佺増鏈殑鍏煎锛屾墍浠ュ繀椤绘槸 config.getEnablePublicAccess() 涓� false 鏃讹紝鎵嶈繘琛岀鍚�
         if (!BooleanUtil.isFalse(config.getEnablePublicAccess())) {
-            return config.getDomain() + "/" + path;
+            return config.getDomain() + "/" + HttpUtils.encodeUrlPath(path);
         }
 
         // 2.2 鎯呭喌浜岋細绉佹湁璁块棶锛氱敓鎴� GET 棰勭鍚� URL

--
Gitblit v1.9.3