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/test/java/cn/iocoder/yudao/module/infra/framework/file/core/s3/S3FileClientTest.java | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 57 insertions(+), 0 deletions(-)
diff --git a/yudao-module-infra/src/test/java/cn/iocoder/yudao/module/infra/framework/file/core/s3/S3FileClientTest.java b/yudao-module-infra/src/test/java/cn/iocoder/yudao/module/infra/framework/file/core/s3/S3FileClientTest.java
index 981971b..8a3e2cd 100644
--- a/yudao-module-infra/src/test/java/cn/iocoder/yudao/module/infra/framework/file/core/s3/S3FileClientTest.java
+++ b/yudao-module-infra/src/test/java/cn/iocoder/yudao/module/infra/framework/file/core/s3/S3FileClientTest.java
@@ -9,10 +9,67 @@
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
@SuppressWarnings("resource")
public class S3FileClientTest {
@Test
+ public void testPresignGetUrl_publicAccess_encodeUrlPath() {
+ // 鍑嗗鍙傛暟
+ S3FileClientConfig config = new S3FileClientConfig();
+ config.setDomain("https://static.iocoder.cn");
+ config.setEnablePublicAccess(true);
+ S3FileClient client = new S3FileClient(0L, config);
+
+ // 璋冪敤
+ String result = client.presignGetUrl("avatar/涓枃 100%+鏂囦欢.jpg", 300);
+
+ // 鏂█
+ assertEquals("https://static.iocoder.cn/avatar/%E4%B8%AD%E6%96%87%20100%25+%E6%96%87%E4%BB%B6.jpg", result);
+ }
+
+ @Test
+ public void testPresignGetUrl_publicAccess_decodeDomainUrl() {
+ // 鍑嗗鍙傛暟
+ S3FileClientConfig config = new S3FileClientConfig();
+ config.setDomain("https://static.iocoder.cn");
+ config.setEnablePublicAccess(true);
+ S3FileClient client = new S3FileClient(0L, config);
+
+ // 璋冪敤
+ String result = client.presignGetUrl("https://static.iocoder.cn/avatar/%E4%B8%AD%E6%96%87%20100%25+%E6%96%87%E4%BB%B6.jpg?token=1", 300);
+
+ // 鏂█
+ assertEquals("https://static.iocoder.cn/avatar/%E4%B8%AD%E6%96%87%20100%25+%E6%96%87%E4%BB%B6.jpg", result);
+ }
+
+ @Test
+ public void testPresignGetUrl_privateAccess_rawPath() {
+ // 鍑嗗鍙傛暟
+ S3FileClientConfig config = new S3FileClientConfig();
+ config.setAccessKey("admin");
+ config.setAccessSecret("password");
+ config.setBucket("yudao");
+ config.setDomain("http://127.0.0.1:9000/yudao");
+ config.setEndpoint("http://127.0.0.1:9000");
+ config.setEnablePathStyleAccess(true);
+ config.setEnablePublicAccess(false);
+ S3FileClient client = new S3FileClient(0L, config);
+ client.init();
+
+ // 璋冪敤
+ String result = client.presignGetUrl("avatar/涓枃 100%+鏂囦欢.jpg", 300);
+
+ // 鏂█
+ assertTrue(result.contains("/yudao/avatar/%E4%B8%AD%E6%96%87%20100%25"));
+ assertTrue(result.contains("%E6%96%87%E4%BB%B6.jpg"));
+ assertFalse(result.contains("%25E4%25B8%25AD"));
+ }
+
+ @Test
@Disabled // MinIO锛屽鏋滆闆嗘垚娴嬭瘯锛屽彲浠ユ敞閲婃湰琛�
public void testMinIO() throws Exception {
S3FileClientConfig config = new S3FileClientConfig();
--
Gitblit v1.9.3