If `rangeStart` and `rangeEnd` for `getBlobToText` are set. We can get a piece of blob instead of the entire blob. The typical rangeSize is 4MB.

The concurrent `getBlobToText` is limited by `ParallelOperationThreadCount`, and we also have a memory limitation for write disk. So, We don't kill memory for now :).

Multiple requests could randomly complete, however we need to write to file in order. So We can't directly pipe to the file.