Скачать большой файл 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 МБ)
После отправки запроса, если я обновлю страницу, то загрузка прервется, как этого избежать?
Я хочу, чтобы при скачивании файла был виден весь процесс скачивания файла, как это обычно происходит.