Я использую asp.net core 2.1, проект, созданный с помощью шаблона web api angular. Пока все работает нормально, но Я пытаюсь построить маршрут API, который по сути является «прокси» для корзины AWS S3 .
У меня нет проблем с выполнением операций S3, но я хочу, чтобы мой маршрут был примерно таким:
/api/attachments/path/to/file.txt
Что будет соответствовать действиям контроллера, например:
[HttpGet("{folderName}/{subfolder}/{*filePath}")]
public async Task<IActionResult> DownloadFile(string folderName, string subfolder, string filePath)
{
//...
}
Проблема:
-> когда путь URL включает расширение файла, мое приложение перенаправляется в индексный файл SPA, который затем падает, потому что мой / api-маршрут не определен как угловой маршрут.
Другие маршруты API (включая другие действия в этом же контроллере, которые просто возвращают обычные данные JSON) работают нормально. Когда расширение файла находится в маршруте, оно возвращается к индексному файлу 304.
Я понимаю, что это должно быть какой-то проблемой с обработкой статических файлов и обработкой путей с расширениями файлов, , но я не могу точно определить основную причину или исправить . Я исчерпал Google - все, что я могу найти, не включает в себя ядро dotnet, просто ванильные ASP.NET MVC вещи.
Большая часть того, что я пробовал до сих пор, взята из здесь .
ядро dot net, похоже, не соответствует ни одному из правил, изложенных в TransferRequestHandler
записях в web.config. Ничто из того, что я добавил, не имело значения.
Я немного растерялся, и я удивлен, что не могу найти что-либо, связанное с запуском ядра asp.net в качестве бэк-энда, который обслуживает файлы для загрузки ...