Update ExportAssetDownloader.cs

This commit is contained in:
Oleksii Holub 2026-06-03 14:09:06 +03:00 committed by GitHub
parent e7a9499601
commit 6df8443101
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -64,15 +64,15 @@ internal partial class ExportAssetDownloader(string workingDirPath, bool reuse)
await Http.ResiliencePipeline.ExecuteAsync( await Http.ResiliencePipeline.ExecuteAsync(
async innerCancellationToken => async innerCancellationToken =>
{ {
// Download the file. // Download the file
// Use ResponseHeadersRead so the response body is streamed to disk instead of
// being fully buffered into memory first, which can cause an OutOfMemoryException
// on large attachments.
using var response = await Http.Client.GetAsync( using var response = await Http.Client.GetAsync(
url, url,
HttpCompletionOption.ResponseHeadersRead, HttpCompletionOption.ResponseHeadersRead,
innerCancellationToken innerCancellationToken
); );
response.EnsureSuccessStatusCode();
await using var output = File.Create(filePath); await using var output = File.Create(filePath);
await response.Content.CopyToAsync(output, innerCancellationToken); await response.Content.CopyToAsync(output, innerCancellationToken);
}, },