private void processIndexFile(FileInfo indexFile, String partitionToMountFilePath, FileCopyInfo fileCopyInfo,
      String snapshotId, PartitionFileStore fileStore){
    validateIfStoreFileCopyHandlerIsRunning();
    final FileChunkInfo fileChunkInfo = new FileChunkInfo(indexFile.getFileName(), 0, indexFile.getFileSize(), false);
    FileCopyGetChunkResponse chunkResponse = null;
    try {
      chunkResponse = getFileCopyGetChunkResponse(GetChunkDataWorkflow.GET_FILE_OPERATION_NAME, fileCopyInfo,
          fileChunkInfo, snapshotId, false);
      String filePath = partitionToMountFilePath + File.separator + indexFile.getFileName();
      writeStoreFileChunkToDisk(chunkResponse, filePath, fileStore);
    } finally {
      if (chunkResponse != null) {
        chunkResponse.release();
      }
    }
  }
Process the index file.
@param indexFile the index file to process
@param partitionToMountFilePath the partition file path
@param fileCopyInfo the file copy info
@param fileStore the file store
ambry-file-transfer/src/main/java/com/github/ambry/filetransfer/handler/StoreFileCopyHandler.java