public async Task <Response> Handle(Request request, CancellationToken cancellationToken) { var cloudBlobContainer = _cloudBlobClient.GetContainerReference("images"); await cloudBlobContainer.CreateIfNotExistsAsync(); var permissions = new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob }; await cloudBlobContainer.SetPermissionsAsync(permissions); var httpContext = _httpContextAccessor.HttpContext; var defaultFormOptions = new FormOptions(); var mediaTypeHeaderValue = MediaTypeHeaderValue.Parse(httpContext.Request.ContentType); var boundary = MultipartRequestHelper.GetBoundary( mediaTypeHeaderValue, defaultFormOptions.MultipartBoundaryLengthLimit); var reader = new MultipartReader(boundary, httpContext.Request.Body); var section = await reader.ReadNextSectionAsync(); var urls = new List <string>(); while (section != null) { urls.Add(await Upload(cloudBlobContainer, section)); section = await reader.ReadNextSectionAsync(); } return(new Response() { Urls = urls }); }