Я создаю. NET Core 3.1 WEB API, который получит большой файл (до 500 МБ), если он действителен, вернет клиенту ответ 200 и только после этого загрузит загруженный файл в Azure Контейнер BLOB-объектов.
Проблема, с которой я столкнулся, заключается в том, что запрос / поток удаляется (я полагаю) после того, как я возвращаю ответ клиенту, и он не выдает мне ни ошибок, ни загружено ли оно.
Я пробовал несколько альтернатив, но безуспешно:
- Task.Run ()
- Блокировка потока,
- Копирование потока в новую переменную
- Синхронизация потока,
- Служба размещения с фоновой очередью
Единственный способ успешно загрузить файл - это если либо я сохраняю файл локально, либо заставляю пользователя ждать, но я бы не стал этого делать, если смогу.
У кого-нибудь есть идеи, как я могу выполнить sh это?
РЕДАКТИРОВАТЬ:
Я создаю ресурс в базе данных с опцией загрузки файла (и возвращает 202 с идентификатором операции загрузки файла), и я обновляю его статус в зависимости от успешности загрузки в Azure хранилище BLOB-объектов.
Пользователь может проверить состояние загрузки в другом API конечная точка.
Я просто хотел бы знать, существует ли способ сохранить файловый поток или какой-либо объект на самом деле после возврата ответа.