diff --git a/src/main/java/com/gxwebsoft/common/system/controller/AliOssController.java b/src/main/java/com/gxwebsoft/common/system/controller/AliOssController.java index a3b016b..832ccf3 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/AliOssController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/AliOssController.java @@ -102,6 +102,11 @@ public class AliOssController extends BaseController { String accessKeySecret = settingInfo.getString("accessKeySecret"); String uploadMethod = settingInfo.getString("uploadMethod"); + // 规范化 endpoint:去掉结尾斜杠,避免 minio-java 拼接出双斜杠导致签名不匹配 + if (StrUtil.isNotBlank(endpoint) && endpoint.endsWith("/")) { + endpoint = endpoint.substring(0, endpoint.length() - 1); + } + // 判断是否登录 String authorization = getAuthorization(); @@ -123,9 +128,12 @@ public class AliOssController extends BaseController { OSS ossClient = null; MinioClient minioClient = null; if (isMinio) { + // 显式指定 region=us-east-1,跳过 minio-java 的 getBucketLocation 自动探测 + // (该探测 GET 在 MinIO + 反代下会触发 SignatureDoesNotMatch) minioClient = MinioClient.builder() .endpoint(endpoint) .credentials(accessKeyId, accessKeySecret) + .region("us-east-1") .build(); } else { CredentialsProvider credentialsProvider = new DefaultCredentialProvider(accessKeyId, accessKeySecret); diff --git a/src/main/java/com/gxwebsoft/common/system/service/impl/FileRecordServiceImpl.java b/src/main/java/com/gxwebsoft/common/system/service/impl/FileRecordServiceImpl.java index 2f64f73..1600daf 100644 --- a/src/main/java/com/gxwebsoft/common/system/service/impl/FileRecordServiceImpl.java +++ b/src/main/java/com/gxwebsoft/common/system/service/impl/FileRecordServiceImpl.java @@ -98,14 +98,20 @@ public class FileRecordServiceImpl extends ServiceImpl