Как принимать большие загрузки в ASP.NET Core без переполнения памяти и с backpressure?
Стримьте — читайте Request.BodyReader/Body чанками прямо в хранилище, не буферизуйте в память/ReadToEnd. Проверьте/ограничьте размер (Kestrel limits/Content-Length/счётчик байт), применяйте CancellationToken, вычисляйте хеш/сканируйте «на лету», пишите во временный файл с атомарным переименованием. Лимитируйте параллелизм (SemaphoreSlim/очередь), отключите/настройте форм-парсер (multipart — через потоковый MultipartReader), валидируйте тип/мими-тип до сохранения.
Библиотека собеса по С#
Post #1141
1.34K
- 👾 1