Skip to content

Commit

Permalink
HADOOP-17951. Improve S3A checking of S3 Access Point existence (apac…
Browse files Browse the repository at this point in the history
…he#3516)


Follow-on to HADOOP-17198. Support S3 Access Points

Contributed by Bogdan Stolojan
  • Loading branch information
bogthe authored and steveloughran committed Feb 3, 2022
1 parent 9ff75f7 commit 8088f34
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
Expand Up @@ -204,6 +204,7 @@
import static org.apache.hadoop.fs.s3a.impl.CallableSupplier.waitForCompletionIgnoringExceptions;
import static org.apache.hadoop.fs.s3a.impl.ErrorTranslation.isObjectNotFound;
import static org.apache.hadoop.fs.s3a.impl.ErrorTranslation.isUnknownBucket;
import static org.apache.hadoop.fs.s3a.impl.InternalConstants.AP_INACCESSIBLE;
import static org.apache.hadoop.fs.s3a.impl.InternalConstants.AP_REQUIRED_EXCEPTION;
import static org.apache.hadoop.fs.s3a.impl.InternalConstants.ARN_BUCKET_OPTION;
import static org.apache.hadoop.fs.s3a.impl.InternalConstants.CSE_PADDING_LENGTH;
Expand Down Expand Up @@ -730,7 +731,8 @@ protected void verifyBucketExistsV2()
s3.getBucketAcl(bucket);
} catch (AmazonServiceException ex) {
int statusCode = ex.getStatusCode();
if (statusCode == SC_404 || (statusCode == SC_403 && accessPoint != null)) {
if (statusCode == SC_404 ||
(statusCode == SC_403 && ex.getMessage().contains(AP_INACCESSIBLE))) {
return false;
}
}
Expand Down
Expand Up @@ -143,6 +143,11 @@ private InternalConstants() {
public static final String AP_REQUIRED_EXCEPTION = "Access Points usage is required" +
" but not configured for the bucket.";

/**
* Error message to indicate Access Points are not accessible or don't exist.
*/
public static final String AP_INACCESSIBLE = "Could not access through this access point";

/**
* AccessPoint ARN for the bucket. When set as a bucket override the requests for that bucket
* will go through the AccessPoint.
Expand Down

0 comments on commit 8088f34

Please sign in to comment.