Скачать большой файл FastAPI

Я написал функцию, которая загружает файл. Файл скачивается в папку, однако процесс установки не виден в браузере, видно только когда файл скачался. Мой код:


@router.get("/files/install_mp4", status_code=200)
async def get_mp4():
    res = "video.mp4"
    CHUNK_SIZE = 1024*1024

    async def iterfile():
        async with aiofiles.open(res, mode="rb") as f:
            while chunk := await f.read(CHUNK_SIZE):
                yield chunk
    headers = {'Content-Disposition': 'attachment; filename="video.mp4"'}
    return StreamingResponse(iterfile(), media_type="video/mp4", headers=headers)

Я хочу видеть процесс загрузки файла, как здесь, однако я получаю только так

Также и в документации swagger, при get-запросе мне приходит download file, но кнопка неактивна около 10 секунд, когда становится активна, то файл скачивается сразу (300 МБ)

После отправки запроса, если я обновлю страницу, то загрузка прервется, как этого избежать?

Я хочу, чтобы при скачивании файла был виден весь процесс скачивания файла, как это обычно происходит.


Ответы (0 шт):