BatchOperation is used to execute a batch of operations which could be treated as one big operation logically.

For uploading, we divide the large file into small pieces and BatchOperation is used to upload these small pieces and emit the end event when uploading is done.

For downloading, BatchOperaion is used to parallel download the blobblocks or blobranges, and emit the end event when downloading is done.