mirror of https://github.com/apache/druid.git
S3Utils: Fix retry predicate
This commit is contained in:
parent
2dd4860106
commit
36756e611b
|
@ -21,7 +21,7 @@ package io.druid.storage.s3;
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
import com.metamx.common.RetryUtils;
|
import com.metamx.common.RetryUtils;
|
||||||
import org.jets3t.service.S3ServiceException;
|
import org.jets3t.service.ServiceException;
|
||||||
import org.jets3t.service.impl.rest.httpclient.RestS3Service;
|
import org.jets3t.service.impl.rest.httpclient.RestS3Service;
|
||||||
import org.jets3t.service.model.S3Bucket;
|
import org.jets3t.service.model.S3Bucket;
|
||||||
import org.jets3t.service.model.S3Object;
|
import org.jets3t.service.model.S3Object;
|
||||||
|
@ -61,9 +61,9 @@ public class S3Utils
|
||||||
{
|
{
|
||||||
if (e instanceof IOException) {
|
if (e instanceof IOException) {
|
||||||
return true;
|
return true;
|
||||||
} else if (e instanceof S3ServiceException) {
|
} else if (e instanceof ServiceException) {
|
||||||
final boolean isIOException = e.getCause() instanceof IOException;
|
final boolean isIOException = e.getCause() instanceof IOException;
|
||||||
final boolean isTimeout = "RequestTimeout".equals(((S3ServiceException) e).getS3ErrorCode());
|
final boolean isTimeout = "RequestTimeout".equals(((ServiceException) e).getErrorCode());
|
||||||
return isIOException || isTimeout;
|
return isIOException || isTimeout;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
@ -75,18 +75,18 @@ public class S3Utils
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isObjectInBucket(RestS3Service s3Client, String bucketName, String objectKey)
|
public static boolean isObjectInBucket(RestS3Service s3Client, String bucketName, String objectKey)
|
||||||
throws S3ServiceException
|
throws ServiceException
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
s3Client.getObjectDetails(new S3Bucket(bucketName), objectKey);
|
s3Client.getObjectDetails(new S3Bucket(bucketName), objectKey);
|
||||||
}
|
}
|
||||||
catch (S3ServiceException e) {
|
catch (ServiceException e) {
|
||||||
if (404 == e.getResponseCode()
|
if (404 == e.getResponseCode()
|
||||||
|| "NoSuchKey".equals(e.getS3ErrorCode())
|
|| "NoSuchKey".equals(e.getErrorCode())
|
||||||
|| "NoSuchBucket".equals(e.getS3ErrorCode())) {
|
|| "NoSuchBucket".equals(e.getErrorCode())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if ("AccessDenied".equals(e.getS3ErrorCode())) {
|
if ("AccessDenied".equals(e.getErrorCode())) {
|
||||||
// Object is inaccessible to current user, but does exist.
|
// Object is inaccessible to current user, but does exist.
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue