int getNumDataChunks() {
    return isStitchOperation() ? chunksToStitch.size()
        : RouterUtils.getNumChunksForBlobAndChunkSize(getBlobSize(), routerConfig.routerMaxPutChunkSizeBytes);
  }
Return the number of data chunks that this operation should result in. For composite direct uploads, this method
calculates the expected number of chunks using the blob size and the configured max put chunk size. For stitched
uploads, this returns the number of chunks provided in the {@code chunksToStitch} list. This method should only be
called once the chunk filling has completed (which is when the final size is determined).
@return the number of data chunks that this operation resulted in.
@throws IllegalStateException if the chunk filling has not yet completed.
ambry-router/src/main/java/com/github/ambry/router/PutOperation.java