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