Загрузка изображения с помощью FastAPI вызывает ошибку exc.ResourceClosedError

У меня есть конечная точка, которая сохраняет загруженное изображение:

@router.post("/v1/installation/{installation_uuid}/image")
@db.create_connection
async def upload_installation_image(installation_uuid: UUID, request: Request):
    content_type = request.headers["content-type"]
    async with db.transaction():
        installation = await get_installation_by_uuid(installation_uuid)
        if not installation:
            raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=f"Installation {installation} not found")

        try:
            content = await request.body()
            image_uuid = await save_installation_image(installation.uuid, content, content_type)
        except Exception as e:
            log.debug(f"An error raised while uploading image: {e}")
            raise HTTPException(
                status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail="Error while uploading image to db"
            )

        return {"image_uuid": image_uuid}

save_installation_image сделать простую вставку в БД. В моих тестах я посылаю 3 запроса к этой конечной точке. и все работает нормально:

tests.py

# upload image 1
        data1 = b"\x01\x02\x03\x61\x05\x61"
        response = session.post(
            f"/v1/installation/{installation_uuid}/image", data=data1, headers={"content-type": "image/png"}
        )
# upload image 2
        data2 = b"\x01\x02\x03\x61\x05\x62"
        response = session.post(
            f"/v1/installation/{installation_uuid}/image", data=data2, headers={"content-type": "image/png"}
        )
# upload image 3
        data3 = b"\x01\x02\x03\x61\x05\x63"
        response = session.post(
            f"/v1/installation/{installation_uuid}/image", data=data3, headers={"content-type": "image/png"}
        )

Но когда FE начинает вызывать этот запрос, каждый запрос после первого начинает завершаться ошибкой:

Также, когда я меняю данные на данные, которые отправляют FE, у меня тоже начинает выходить ошибка. Что может вызвать эту ошибку, и почему, если я посылаю реальные изображения, соединение закрывается после первого запроса?

P.S. Если я отправляю только 1 изображение, оно работает нормально, так что проблема в отправке нескольких запросов.

Вернуться на верх