From 0e3ebac3627fe5039957d2d48d68d8620ff9384f Mon Sep 17 00:00:00 2001 From: Maxim Devaev Date: Sat, 23 Jul 2022 18:34:58 +0300 Subject: reading images api --- kvmd/apps/kvmd/api/msd.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'kvmd/apps') diff --git a/kvmd/apps/kvmd/api/msd.py b/kvmd/apps/kvmd/api/msd.py index 7347bd8c..e9e1e68b 100644 --- a/kvmd/apps/kvmd/api/msd.py +++ b/kvmd/apps/kvmd/api/msd.py @@ -84,6 +84,18 @@ class MsdApi: # ===== + @exposed_http("GET", "/msd/read") + async def __read_handler(self, request: Request) -> StreamResponse: + name = valid_msd_image_name(request.query.get("image")) + async with self.__msd.read_image(name) as size: + response = await start_streaming(request, "application/octet-stream", size, name) + while True: + chunk = await self.__msd.read_image_chunk() + if not chunk: + return response + await response.write(chunk) + return response + @exposed_http("POST", "/msd/write") async def __write_handler(self, request: Request) -> Response: name = valid_msd_image_name(request.query.get("image")) -- cgit v1.2.3