We divide the full file stream into samll pieces which is smaller than 4MB and upload these pieces to construct a block blob, and we need to pause the fileStream if we reach the concurrency limitation. If so, we can avoid the OOM exceptions. The piping and performrequest can't meet these requirements.

@andrerod I'm not very familiar with piping and performrequest, Is my answer correct?