OssClient升级

This commit is contained in:
数据小王子 2024-04-30 15:36:52 +08:00
parent d28e5fadb5
commit 502b692fee
2 changed files with 6 additions and 3 deletions

BIN
doc/~$oyi-Flex-Guide.docx Normal file

Binary file not shown.

View File

@ -83,6 +83,9 @@ public class OssClient {
StaticCredentialsProvider credentialsProvider = StaticCredentialsProvider.create( StaticCredentialsProvider credentialsProvider = StaticCredentialsProvider.create(
AwsBasicCredentials.create(properties.getAccessKey(), properties.getSecretKey())); AwsBasicCredentials.create(properties.getAccessKey(), properties.getSecretKey()));
//MinIO 使用 HTTPS 限制使用域名访问站点填域名需要启用路径样式访问
boolean isStyle = !StringUtils.containsAny(properties.getEndpoint(), OssConstant.CLOUD_SERVICE);
//创建AWS基于 CRT S3 客户端 //创建AWS基于 CRT S3 客户端
this.client = S3AsyncClient.crtBuilder() this.client = S3AsyncClient.crtBuilder()
.credentialsProvider(credentialsProvider) .credentialsProvider(credentialsProvider)
@ -91,15 +94,15 @@ public class OssClient {
.targetThroughputInGbps(20.0) .targetThroughputInGbps(20.0)
.minimumPartSizeInBytes(10 * 1025 * 1024L) .minimumPartSizeInBytes(10 * 1025 * 1024L)
.checksumValidationEnabled(false) .checksumValidationEnabled(false)
.forcePathStyle(isStyle)
.build(); .build();
//AWS基于 CRT S3 AsyncClient 实例用作 S3 传输管理器的底层客户端 //AWS基于 CRT S3 AsyncClient 实例用作 S3 传输管理器的底层客户端
this.transferManager = S3TransferManager.builder().s3Client(this.client).build(); this.transferManager = S3TransferManager.builder().s3Client(this.client).build();
// 检查是否连接到 MinIOMinIO 使用 HTTPS 限制使用域名访问需要启用路径样式访问 // 创建 S3 配置对象
S3Configuration config = S3Configuration.builder().chunkedEncodingEnabled(false) S3Configuration config = S3Configuration.builder().chunkedEncodingEnabled(false)
// minio 使用https限制使用域名访问 需要此配置 站点填域名 .pathStyleAccessEnabled(isStyle).build();
.pathStyleAccessEnabled(!StringUtils.containsAny(properties.getEndpoint(), OssConstant.CLOUD_SERVICE)).build();
// 创建 预签名 URL 的生成器 实例用于生成 S3 预签名 URL // 创建 预签名 URL 的生成器 实例用于生成 S3 预签名 URL
this.presigner = S3Presigner.builder() this.presigner = S3Presigner.builder()