void handle(RestRequest restRequest, RestResponseChannel restResponseChannel,
      Callback<ReadableStreamChannel> callback) throws RestServiceException {
    RestRequestMetrics requestMetrics =
        frontendMetrics.copyBlobMetricsGroup.getRestRequestMetrics(restRequest.isSslUsed(), false);
    restRequest.getMetricsTracker().injectMetrics(requestMetrics);
    // copy dataset request have their account/container name in request header, so checks can be done at early stage.
    accountAndContainerInjector.injectAccountContainerForNamedBlob(restRequest, frontendMetrics.copyBlobMetricsGroup);
    new CopyDatasetVersionHandler.CallbackChain(restRequest, restResponseChannel, callback).start();
  }
Constructs a handler for handling requests for copy dataset versions under a dataset.
@param securityService the {@link SecurityService} to use.
@param accountService the {@link AccountService} to use.
@param frontendMetrics {@link FrontendMetrics} instance where metrics should be recorded.
@param accountAndContainerInjector helper to resolve account and container for a given request.
ambry-frontend/src/main/java/com/github/ambry/frontend/CopyDatasetVersionHandler.java