Browse Source

oss avoid listBuckets permission in bucket check (#14414)

---------

Co-authored-by: kuantian.zhang <kuantian.zhang@inceptio.ai>
3.2.1-prepare
zhangkuantian 1 year ago committed by GitHub
parent
commit
6f90156577
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/OssRemoteLogHandler.java
  2. 19
      dolphinscheduler-storage-plugin/dolphinscheduler-storage-oss/src/main/java/org/apache/dolphinscheduler/plugin/storage/oss/OssStorageOperator.java

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

@ -31,7 +31,6 @@ import java.io.IOException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import com.aliyun.oss.OSS; import com.aliyun.oss.OSS;
import com.aliyun.oss.model.Bucket;
import com.aliyun.oss.model.GetObjectRequest; import com.aliyun.oss.model.GetObjectRequest;
import com.aliyun.oss.model.PutObjectRequest; import com.aliyun.oss.model.PutObjectRequest;
@ -104,17 +103,13 @@ public class OssRemoteLogHandler implements RemoteLogHandler, Closeable {
throw new IllegalArgumentException(Constants.REMOTE_LOGGING_OSS_BUCKET_NAME + " is empty"); throw new IllegalArgumentException(Constants.REMOTE_LOGGING_OSS_BUCKET_NAME + " is empty");
} }
Bucket existsBucket = ossClient.listBuckets() boolean existsBucket = ossClient.doesBucketExist(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", bucketName);
"bucketName: " + bucketName + " does not exist, you need to create them by yourself");
});
log.info("bucketName: {} has been found", existsBucket.getName());
} }
private String readOssAccessKeyId() { private String readOssAccessKeyId() {

19
dolphinscheduler-storage-plugin/dolphinscheduler-storage-oss/src/main/java/org/apache/dolphinscheduler/plugin/storage/oss/OssStorageOperator.java

@ -59,7 +59,6 @@ import lombok.extern.slf4j.Slf4j;
import com.aliyun.oss.OSS; import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSException; import com.aliyun.oss.OSSException;
import com.aliyun.oss.ServiceException; import com.aliyun.oss.ServiceException;
import com.aliyun.oss.model.Bucket;
import com.aliyun.oss.model.DeleteObjectsRequest; import com.aliyun.oss.model.DeleteObjectsRequest;
import com.aliyun.oss.model.ListObjectsV2Request; import com.aliyun.oss.model.ListObjectsV2Request;
import com.aliyun.oss.model.ListObjectsV2Result; import com.aliyun.oss.model.ListObjectsV2Result;
@ -509,17 +508,13 @@ public class OssStorageOperator implements Closeable, StorageOperate {
throw new IllegalArgumentException("resource.alibaba.cloud.oss.bucket.name is empty"); throw new IllegalArgumentException("resource.alibaba.cloud.oss.bucket.name is empty");
} }
Bucket existsBucket = ossClient.listBuckets() boolean existsBucket = ossClient.doesBucketExist(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, region);
"bucketName: " + bucketName + " does not exist, you need to create them by yourself");
});
log.info("bucketName: {} has been found, the current regionName is {}", existsBucket.getName(), region);
} }
protected void deleteDir(String directoryName) { protected void deleteDir(String directoryName) {

Loading…
Cancel
Save