From 3bfcb8cb9cb8c15630b4a9c957b45a2d66db1075 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Fri, 23 Jan 2026 18:03:26 +0800
Subject: [PATCH] 2026-01-23 zwy HTTPS的临时凭证给大疆测试媒体文件上传

---
 ard-sample/src/main/java/com/ard/sample/storage/service/impl/StorageServiceImpl.java |   22 +++++++++++-----------
 ard-sample/src/main/java/com/ard/sample/utils/MinioStsUtils.java                     |   14 ++++++++++++--
 2 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/ard-sample/src/main/java/com/ard/sample/storage/service/impl/StorageServiceImpl.java b/ard-sample/src/main/java/com/ard/sample/storage/service/impl/StorageServiceImpl.java
index 56607d4..9d811d3 100644
--- a/ard-sample/src/main/java/com/ard/sample/storage/service/impl/StorageServiceImpl.java
+++ b/ard-sample/src/main/java/com/ard/sample/storage/service/impl/StorageServiceImpl.java
@@ -43,8 +43,8 @@
 
     @Override
     public StsCredentialsDTO getSTSCredentials() {
-//        CredentialsDTO credentials = ossService.getCredentials();
-        CredentialsDTO credentials = minioStsUtils.getCredentials();
+        CredentialsDTO credentials = ossService.getCredentials();
+//        CredentialsDTO credentials = minioStsUtils.getCredentials();
 
         //验证一下minio的临时凭证是否可用
         log.info("验证http临时凭证是否有效:{}", credentials);
@@ -56,18 +56,18 @@
                 DockConfiguration.bucket,
                 "test_object_http");
 
-//        log.info("验证https临时凭证是否有效:{}", credentials);
-//        execMinio(OssConfiguration.endpoint,
-//                credentials.getAccessKeyId(),
-//                credentials.getAccessKeySecret(),
-//                credentials.getSecurityToken(),
-//                OssConfiguration.region,
-//                DockConfiguration.bucket,
-//                "test_object_https");
+        log.info("验证https临时凭证是否有效:{}", credentials);
+        execMinio(OssConfiguration.endpoint,
+                credentials.getAccessKeyId(),
+                credentials.getAccessKeySecret(),
+                credentials.getSecurityToken(),
+                OssConfiguration.region,
+                DockConfiguration.bucket,
+                "test_object_https");
 
         return StsCredentialsDTO.builder()
                 //机场媒体库minio配置信息用代理地址,桶用机场的桶。
-                .endpoint(DockConfiguration.endpoint)
+                .endpoint(OssConfiguration.endpoint)
                 .bucket(DockConfiguration.bucket)
                 .credentials(credentials)
                 .provider(DockConfiguration.provider)
diff --git a/ard-sample/src/main/java/com/ard/sample/utils/MinioStsUtils.java b/ard-sample/src/main/java/com/ard/sample/utils/MinioStsUtils.java
index bea7e67..4208225 100644
--- a/ard-sample/src/main/java/com/ard/sample/utils/MinioStsUtils.java
+++ b/ard-sample/src/main/java/com/ard/sample/utils/MinioStsUtils.java
@@ -7,6 +7,8 @@
 import okhttp3.OkHttpClient;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import java.security.NoSuchAlgorithmException;
 import java.security.ProviderException;
 import java.util.concurrent.TimeUnit;
@@ -25,10 +27,14 @@
             // 构建适配HTTP协议的OkHttpClient(移除所有SSL相关配置)
             OkHttpClient httpClient = new OkHttpClient.Builder()
                     // 保留原代码的连接池配置(禁用连接复用,如需复用可删除此行)
-                    .connectionPool(new ConnectionPool(0, 1, TimeUnit.SECONDS))
+                    .connectionPool(new ConnectionPool(5, 30, TimeUnit.SECONDS))
+                    .connectTimeout(10, TimeUnit.SECONDS) // 连接超时
+                    .readTimeout(30, TimeUnit.SECONDS)    // 读取超时
+                    .writeTimeout(30, TimeUnit.SECONDS)   // 写入超时
                     .build();
 
             // 构建 AssumeRoleProvider,使用简化后的HTTP客户端
+            String roleSessionName = "dji-sts-session-" + System.currentTimeMillis(); // 唯一会话名称(必需,避免重复)
             AssumeRoleProvider provider = new AssumeRoleProvider(
                     endpoint,          // 注意:此处endpoint需改为HTTP地址(如 http://sts.example.com)
                     accessKey,         // 主账号AccessKey
@@ -36,10 +42,14 @@
                     Math.toIntExact(expire), // 凭证过期时间(转int)
                     null,              // 可选参数(如RoleArn,根据实际SDK调整)
                     region, // 地域(如cn-hangzhou)
-                    null, null, null,  // 其他可选参数
+                    null,
+                    roleSessionName,
+                    null,  // 其他可选参数
                     httpClient         // 传入HTTP版本的OkHttpClient
             );
 
+            log.info("生成临时凭证条件:{}",provider);
+
             // 获取 STS 临时凭证
             var stsCredentials = provider.fetch();
             return new CredentialsDTO(stsCredentials, expire);

--
Gitblit v1.9.3