fix(archival): 🐛 buffer stream to memory so HttpClient doesn't dispose before read completes

This commit is contained in:
Collin M. Barrett 2020-09-17 15:53:23 -05:00
parent 67d38b1b15
commit 66cb92eabc

View file

@ -93,7 +93,12 @@ private async Task<Stream> FetchStreamAsync(
{
using var response = await _httpClient.GetAsync(url, cancellationToken);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStreamAsync();
var sourceStream = await response.Content.ReadAsStreamAsync();
// TODO: verify efficiency. buffered to MemoryStream because Stream from HttpClient is disposed prematurely
var targetStream = new MemoryStream();
await sourceStream.CopyToAsync(targetStream, cancellationToken);
return targetStream;
}
}
}