public async Task PutUngzipFile(CancellationToken cancellationToken, [FromQuery] string fileName, [FromQuery] string sourceUrl, [FromQuery] string directoryName) { using (var httpClient = new HttpClient()) { using (var sourceStream = await httpClient.GetStreamAsync(sourceUrl)) { using (var gzipStream = new GZipStream(sourceStream, CompressionMode.Decompress)) { using (var fileStream = _dbFileService.GetFileWriteStream(fileName, directoryName)) { await gzipStream.CopyToParallelAsync(fileStream, 32000 * 10, cancellationToken); } } } } }