diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/BucketEndpoint.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/BucketEndpoint.java index 72a95ceb6b77..e7e165d65ab1 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/BucketEndpoint.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/BucketEndpoint.java @@ -149,6 +149,11 @@ public Response get( } catch (OMException ex) { if (ex.getResult() == ResultCodes.PERMISSION_DENIED) { throw S3ErrorTable.newError(S3ErrorTable.ACCESS_DENIED, bucketName); + } else if (ex.getResult() == ResultCodes.FILE_NOT_FOUND) { + throw S3ErrorTable.newError(S3ErrorTable.FILE_NOT_FOUND, bucketName); + } else if (ex.getResult() == ResultCodes.DIRECTORY_NOT_FOUND) { + throw S3ErrorTable + .newError(S3ErrorTable.DIRECTORY_NOT_FOUND, bucketName); } else { throw ex; } diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/exception/S3ErrorTable.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/exception/S3ErrorTable.java index 86d9fc049cd8..4679bdffc5fb 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/exception/S3ErrorTable.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/exception/S3ErrorTable.java @@ -120,6 +120,12 @@ private S3ErrorTable() { "NotImplemented", "This part of feature is not implemented yet.", HTTP_NOT_IMPLEMENTED); + public static final OS3Exception FILE_NOT_FOUND = new OS3Exception( + "FileNotFind", "File is not found.", HTTP_NOT_FOUND); + + public static final OS3Exception DIRECTORY_NOT_FOUND = new OS3Exception( + "DirectoryNotFind", "Directory is not found.", HTTP_NOT_FOUND); + /** * Create a new instance of Error. * @param e Error Template