|
@@ -15,12 +15,12 @@ import org.dromara.common.oss.properties.OssProperties;
|
|
|
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
|
|
|
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
|
|
|
import software.amazon.awssdk.core.ResponseInputStream;
|
|
|
-import software.amazon.awssdk.core.async.AsyncRequestBody;
|
|
|
import software.amazon.awssdk.core.async.AsyncResponseTransformer;
|
|
|
import software.amazon.awssdk.core.async.BlockingInputStreamAsyncRequestBody;
|
|
|
import software.amazon.awssdk.regions.Region;
|
|
|
import software.amazon.awssdk.services.s3.S3AsyncClient;
|
|
|
import software.amazon.awssdk.services.s3.S3Configuration;
|
|
|
+import software.amazon.awssdk.services.s3.crt.S3CrtHttpConfiguration;
|
|
|
import software.amazon.awssdk.services.s3.model.GetObjectResponse;
|
|
|
import software.amazon.awssdk.services.s3.model.NoSuchBucketException;
|
|
|
import software.amazon.awssdk.services.s3.model.S3Exception;
|
|
@@ -95,6 +95,9 @@ public class OssClient {
|
|
|
.minimumPartSizeInBytes(10 * 1025 * 1024L)
|
|
|
.checksumValidationEnabled(false)
|
|
|
.forcePathStyle(isStyle)
|
|
|
+ .httpConfiguration(S3CrtHttpConfiguration.builder()
|
|
|
+ .connectionTimeout(Duration.ofSeconds(60)) // 设置连接超时
|
|
|
+ .build())
|
|
|
.build();
|
|
|
|
|
|
//AWS基于 CRT 的 S3 AsyncClient 实例用作 S3 传输管理器的底层客户端
|
|
@@ -217,7 +220,10 @@ public class OssClient {
|
|
|
}
|
|
|
try {
|
|
|
// 创建异步请求体(length如果为空会报错)
|
|
|
- BlockingInputStreamAsyncRequestBody body = AsyncRequestBody.forBlockingInputStream(length);
|
|
|
+ BlockingInputStreamAsyncRequestBody body = BlockingInputStreamAsyncRequestBody.builder()
|
|
|
+ .contentLength(length)
|
|
|
+ .subscribeTimeout(Duration.ofSeconds(30))
|
|
|
+ .build();
|
|
|
|
|
|
// 使用 transferManager 进行上传
|
|
|
Upload upload = transferManager.upload(
|