So what I am doing is uploading video chunk by chunk with PutBlock. The requester sends me the video divided by 4mb chunks by per request(if the video is 17mb requester will send 5 requests, to upload 4mb chunk). I am using PutBlock method to "append" blob... When I download this video from blob it is broken... But if the requester sends me only 3mb video it is not broken(in 3mb video I mean full video and not splitted by chunks)... 
 
Please help... 
 
 
 
 
- public async Task<CloudBlockBlob> AppendBlobOnAssetAsync(UploadRequest request)  
 - {  
 - using Stream stream = new MemoryStream();  
 - request.File.CopyTo(stream);  
 - stream.Position = 0;  
 - var cloudBlobContainer = new CloudBlobContainer(request.InputAssetStorageUri);  
 - var blockBlob = cloudBlobContainer.GetBlockBlobReference(request.BlobName);  
 - var blockItems = new List<ListBlockItem>();  
 - var blockItemIds = new List<string>();  
 - if (request.BlockId > 0)  
 - {  
 - var blocks = await blockBlob.DownloadBlockListAsync();  
 - blockItems = blocks.ToList();  
 - blockItemIds = blockItems.Select(blockItem => blockItem.Name).ToList();  
 - }  
 - var blockId = Convert.ToBase64String(Encoding.UTF8.GetBytes(request.BlockId.ToString(CultureInfo.InvariantCulture).PadLeft(30, '0'))); blockBlob.PutBlock(blockId, stream, null); blockItemIds.Add(blockId); blockBlob.PutBlockList(blockItemIds); return blockBlob;  
 - }