ASP.NET Core передача файла клиенту размером более 2Гб

Рейтинг: 0Ответов: 1Опубликовано: 30.03.2023
public IActionResult Download2()
{
    var filePath = Path.Combine(_fileBufferDownloadStorage.GetFolderPath(), "03d4f3bd-b175-4320-a432-38f393da202b");

    var fileStreamDownload = new FileStream(filePath, FileMode.Open);

    return new FileStreamResult(fileStreamDownload, new MediaTypeHeaderValue("application/octet-stream"))
    {
        FileDownloadName = "1.zip"
    };

    //return new PhysicalFileResult(filePath, "application/octet-stream");
}

При выполнении данного кода получаю ошибку Stream was too long. Т.к. происходит буферизация в память.

А мне нужно передавать пользователю фалы размером более 4GB. В какую сторону копать? Или как отключить буферизации?

Ответы

▲ 0Принят

Спасибо всем кто помог. Особенно помог vitidev, я нашёл middleware с MemoryStream