private String calculateETag(RestRequest restRequest) {
    byte[] digest = restRequest.getDigest();
    String eTag = Utils.encodeAsHexString(digest);
    LOGGER.debug("ETag for RestRequest {} is {}", restRequest, eTag);
    return eTag;
  }
Handles a request for putting a blob.
@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/S3PutHandler.java