private void handle(RestRequest restRequest, RestResponseChannel restResponseChannel, Callback<Void> finalCallback)
        throws RestServiceException {
      // Callback for successful case.
      ThrowingConsumer<Void> successAction = (r) -> {
        restResponseChannel.setStatus(ResponseStatus.NoContent);
        finalCallback.onCompletion(null, null);
      };

      // Callback for failure case, Since S3 delete should be idempotent, we should return 204 on 404.
      // TODO: deleteBlobHandler returns 400 if the account or container does not exist, but s3
      // should return 404 with xml error content in the response body. We should return compatible response
      // as s3.
      Callback<Void> failureCallback = (r, e) -> {
        Exception finalException = e;
        try {
          if (e instanceof RestServiceException) {
            RestServiceException restServiceException = (RestServiceException) e;
            if (restServiceException.getErrorCode() == RestServiceErrorCode.NotFound) {
              finalException = null;
              successAction.accept(null);
            }
          }
        } catch (Exception ex) {
          finalException = ex;
        } finally {
          if (finalException != null) {
            finalCallback.onCompletion(r, finalException);
          }
        }
      };

      deleteBlobHandler.handle(restRequest, restResponseChannel,
          buildCallback(metrics.s3DeleteHandleMetrics, successAction, restRequest.getUri(), LOGGER, failureCallback));
    }
Process the request and construct the response according to the
<a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject spec</a> and

@param restRequest the {@link RestRequest} that contains the request parameters and body.
@param restResponseChannel the {@link RestResponseChannel} where headers should be set.
@param callback the {@link Callback} to invoke when the response is ready (or if there is an exception).
@throws RestServiceException exception when the processing fails
ambry-frontend/src/main/java/com/github/ambry/frontend/s3/S3DeleteHandler.java