Commit 35b6f9d31c9052af7e1bc783eddaf35bb50a9f53
1 parent
94ee7d65
feat:【infra】s3 增加 region 配置
Showing
2 changed files
with
7 additions
and
10 deletions
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/framework/file/core/client/s3/S3FileClient.java
| @@ -173,13 +173,13 @@ public class S3FileClient extends AbstractFileClient<S3FileClientConfig> { | @@ -173,13 +173,13 @@ public class S3FileClient extends AbstractFileClient<S3FileClientConfig> { | ||
| 173 | return config.getRegion(); | 173 | return config.getRegion(); |
| 174 | } | 174 | } |
| 175 | 175 | ||
| 176 | - // 2. 尝试从 endpoint 中解析 region | 176 | + // 2.1 尝试从 endpoint 中解析 region |
| 177 | String endpoint = config.getEndpoint(); | 177 | String endpoint = config.getEndpoint(); |
| 178 | if (StrUtil.isEmpty(endpoint)) { | 178 | if (StrUtil.isEmpty(endpoint)) { |
| 179 | return "us-east-1"; | 179 | return "us-east-1"; |
| 180 | } | 180 | } |
| 181 | 181 | ||
| 182 | - // 移除协议头(http:// 或 https://) | 182 | + // 2.2 移除协议头(http:// 或 https://) |
| 183 | String host = endpoint; | 183 | String host = endpoint; |
| 184 | if (HttpUtil.isHttp(endpoint) || HttpUtil.isHttps(endpoint)) { | 184 | if (HttpUtil.isHttp(endpoint) || HttpUtil.isHttps(endpoint)) { |
| 185 | try { | 185 | try { |
| @@ -189,12 +189,11 @@ public class S3FileClient extends AbstractFileClient<S3FileClientConfig> { | @@ -189,12 +189,11 @@ public class S3FileClient extends AbstractFileClient<S3FileClientConfig> { | ||
| 189 | return "us-east-1"; | 189 | return "us-east-1"; |
| 190 | } | 190 | } |
| 191 | } | 191 | } |
| 192 | - | ||
| 193 | if (StrUtil.isEmpty(host)) { | 192 | if (StrUtil.isEmpty(host)) { |
| 194 | return "us-east-1"; | 193 | return "us-east-1"; |
| 195 | } | 194 | } |
| 196 | 195 | ||
| 197 | - // 3. AWS S3 格式:s3.us-west-2.amazonaws.com 或 s3.amazonaws.com | 196 | + // 3.1 AWS S3 格式:s3.us-west-2.amazonaws.com 或 s3.amazonaws.com |
| 198 | if (host.contains("amazonaws.com")) { | 197 | if (host.contains("amazonaws.com")) { |
| 199 | // 匹配 s3.{region}.amazonaws.com 格式 | 198 | // 匹配 s3.{region}.amazonaws.com 格式 |
| 200 | if (host.startsWith("s3.") && host.contains(".amazonaws.com")) { | 199 | if (host.startsWith("s3.") && host.contains(".amazonaws.com")) { |
| @@ -206,8 +205,7 @@ public class S3FileClient extends AbstractFileClient<S3FileClientConfig> { | @@ -206,8 +205,7 @@ public class S3FileClient extends AbstractFileClient<S3FileClientConfig> { | ||
| 206 | // s3.amazonaws.com 或 s3-accelerate.amazonaws.com 使用默认值 | 205 | // s3.amazonaws.com 或 s3-accelerate.amazonaws.com 使用默认值 |
| 207 | return "us-east-1"; | 206 | return "us-east-1"; |
| 208 | } | 207 | } |
| 209 | - | ||
| 210 | - // 4. 阿里云 OSS 格式:oss-cn-beijing.aliyuncs.com | 208 | + // 3.2 阿里云 OSS 格式:oss-cn-beijing.aliyuncs.com |
| 211 | if (host.contains(S3FileClientConfig.ENDPOINT_ALIYUN)) { | 209 | if (host.contains(S3FileClientConfig.ENDPOINT_ALIYUN)) { |
| 212 | // 匹配 oss-{region}.aliyuncs.com 格式 | 210 | // 匹配 oss-{region}.aliyuncs.com 格式 |
| 213 | if (host.startsWith("oss-") && host.contains("." + S3FileClientConfig.ENDPOINT_ALIYUN)) { | 211 | if (host.startsWith("oss-") && host.contains("." + S3FileClientConfig.ENDPOINT_ALIYUN)) { |
| @@ -217,8 +215,7 @@ public class S3FileClient extends AbstractFileClient<S3FileClientConfig> { | @@ -217,8 +215,7 @@ public class S3FileClient extends AbstractFileClient<S3FileClientConfig> { | ||
| 217 | } | 215 | } |
| 218 | } | 216 | } |
| 219 | } | 217 | } |
| 220 | - | ||
| 221 | - // 5. 腾讯云 COS 格式:cos.ap-shanghai.myqcloud.com | 218 | + // 3.3 腾讯云 COS 格式:cos.ap-shanghai.myqcloud.com |
| 222 | if (host.contains(S3FileClientConfig.ENDPOINT_TENCENT)) { | 219 | if (host.contains(S3FileClientConfig.ENDPOINT_TENCENT)) { |
| 223 | // 匹配 cos.{region}.myqcloud.com 格式 | 220 | // 匹配 cos.{region}.myqcloud.com 格式 |
| 224 | if (host.startsWith("cos.") && host.contains("." + S3FileClientConfig.ENDPOINT_TENCENT)) { | 221 | if (host.startsWith("cos.") && host.contains("." + S3FileClientConfig.ENDPOINT_TENCENT)) { |
| @@ -229,7 +226,7 @@ public class S3FileClient extends AbstractFileClient<S3FileClientConfig> { | @@ -229,7 +226,7 @@ public class S3FileClient extends AbstractFileClient<S3FileClientConfig> { | ||
| 229 | } | 226 | } |
| 230 | } | 227 | } |
| 231 | 228 | ||
| 232 | - // 6. 其他情况(MinIO、七牛云等)使用默认值 | 229 | + // 3.4 其他情况(MinIO、七牛云等)使用默认值 |
| 233 | return "us-east-1"; | 230 | return "us-east-1"; |
| 234 | } | 231 | } |
| 235 | 232 |
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/framework/file/core/client/s3/S3FileClientConfig.java
| @@ -83,7 +83,7 @@ public class S3FileClientConfig implements FileClientConfig { | @@ -83,7 +83,7 @@ public class S3FileClientConfig implements FileClientConfig { | ||
| 83 | private Boolean enablePublicAccess; | 83 | private Boolean enablePublicAccess; |
| 84 | 84 | ||
| 85 | /** | 85 | /** |
| 86 | - * AWS 区域 | 86 | + * 区域 |
| 87 | * 1. AWS S3:https://docs.aws.amazon.com/general/latest/gr/s3.html 例如说,us-east-1、us-west-2 | 87 | * 1. AWS S3:https://docs.aws.amazon.com/general/latest/gr/s3.html 例如说,us-east-1、us-west-2 |
| 88 | * 2. MinIO:可以填任意值,通常使用 us-east-1 | 88 | * 2. MinIO:可以填任意值,通常使用 us-east-1 |
| 89 | * 3. 阿里云:不需要填写,会自动识别 | 89 | * 3. 阿里云:不需要填写,会自动识别 |