Browse Source

[fix-14119] The checkBucketNameExists method should not use s3Client. listBuckets() (#14188)

* optimize checkBucketNameExists

* fix code style

---------

Co-authored-by: 詹子恒 <ziheng.zhan@longbridge.sg>
3.2.0-release
Zzih 2 years ago committed by GitHub
parent
commit
43d7b35977
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/log/remote/S3RemoteLogHandler.java
  2. 19
      dolphinscheduler-storage-plugin/dolphinscheduler-storage-s3/src/main/java/org/apache/dolphinscheduler/plugin/storage/s3/S3StorageOperator.java

19
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/log/remote/S3RemoteLogHandler.java

@ -35,7 +35,6 @@ import com.amazonaws.client.builder.AwsClientBuilder;
import com.amazonaws.regions.Regions; import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.Bucket;
import com.amazonaws.services.s3.model.S3Object; import com.amazonaws.services.s3.model.S3Object;
import com.amazonaws.services.s3.model.S3ObjectInputStream; import com.amazonaws.services.s3.model.S3ObjectInputStream;
@ -162,17 +161,13 @@ public class S3RemoteLogHandler implements RemoteLogHandler, Closeable {
throw new IllegalArgumentException("remote.logging.s3.bucket.name is blank"); throw new IllegalArgumentException("remote.logging.s3.bucket.name is blank");
} }
Bucket existsBucket = s3Client.listBuckets() boolean existsBucket = s3Client.doesBucketExistV2(bucketName);
.stream() if (!existsBucket) {
.filter( throw new IllegalArgumentException(
bucket -> bucket.getName().equals(bucketName)) "bucketName: " + bucketName + " is not exists, you need to create them by yourself");
.findFirst() }
.orElseThrow(() -> {
return new IllegalArgumentException( log.info("bucketName: {} has been found, the current regionName is {}", bucketName,
"bucketName: " + bucketName + " is not exists, you need to create them by yourself");
});
log.info("bucketName: {} has been found, the current regionName is {}", existsBucket.getName(),
s3Client.getRegionName()); s3Client.getRegionName());
} }
} }

19
dolphinscheduler-storage-plugin/dolphinscheduler-storage-s3/src/main/java/org/apache/dolphinscheduler/plugin/storage/s3/S3StorageOperator.java

@ -63,7 +63,6 @@ import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.AmazonS3Exception; import com.amazonaws.services.s3.model.AmazonS3Exception;
import com.amazonaws.services.s3.model.Bucket;
import com.amazonaws.services.s3.model.DeleteObjectsRequest; import com.amazonaws.services.s3.model.DeleteObjectsRequest;
import com.amazonaws.services.s3.model.ListObjectsV2Request; import com.amazonaws.services.s3.model.ListObjectsV2Request;
import com.amazonaws.services.s3.model.ListObjectsV2Result; import com.amazonaws.services.s3.model.ListObjectsV2Result;
@ -404,17 +403,13 @@ public class S3StorageOperator implements Closeable, StorageOperate {
throw new IllegalArgumentException("resource.aws.s3.bucket.name is blank"); throw new IllegalArgumentException("resource.aws.s3.bucket.name is blank");
} }
Bucket existsBucket = s3Client.listBuckets() boolean existsBucket = s3Client.doesBucketExistV2(bucketName);
.stream() if (!existsBucket) {
.filter( throw new IllegalArgumentException(
bucket -> bucket.getName().equals(bucketName)) "bucketName: " + bucketName + " is not exists, you need to create them by yourself");
.findFirst() }
.orElseThrow(() -> {
return new IllegalArgumentException( log.info("bucketName: {} has been found, the current regionName is {}", bucketName,
"bucketName: " + bucketName + " is not exists, you need to create them by yourself");
});
log.info("bucketName: {} has been found, the current regionName is {}", existsBucket.getName(),
s3Client.getRegionName()); s3Client.getRegionName());
} }

Loading…
Cancel
Save