mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 09:10:30 +08:00
send error in streaming response
This commit is contained in:
parent
7d7f4965de
commit
4a1f51bc30
@ -106,9 +106,9 @@ class MsdApi:
|
||||
size = written = 0
|
||||
response: Optional[StreamResponse] = None
|
||||
|
||||
async def stream_write_info() -> None:
|
||||
async def stream_write_info(err: Optional[Exception]=None) -> None:
|
||||
assert response is not None
|
||||
await stream_json(response, self.__make_write_info(name, size, written))
|
||||
await stream_json(response, self.__make_write_info(name, size, written), err)
|
||||
|
||||
try:
|
||||
async with htclient.download(
|
||||
@ -141,7 +141,7 @@ class MsdApi:
|
||||
|
||||
except Exception as err:
|
||||
if response is not None:
|
||||
await stream_write_info()
|
||||
await stream_write_info(err)
|
||||
elif isinstance(err, aiohttp.ClientError):
|
||||
return make_json_exception(err, 400)
|
||||
raise
|
||||
|
||||
@ -178,8 +178,12 @@ async def start_streaming(request: Request, content_type: str) -> StreamResponse
|
||||
return response
|
||||
|
||||
|
||||
async def stream_json(response: StreamResponse, result: Dict) -> None:
|
||||
await response.write(json.dumps(result).encode("utf-8") + b"\r\n")
|
||||
async def stream_json(response: StreamResponse, result: Dict, err: Optional[Exception]=None) -> None:
|
||||
await response.write(json.dumps({
|
||||
"result": result,
|
||||
"error": ("" if err is None else type(err).__name__),
|
||||
"error_msg": ("" if err is None else str(err)),
|
||||
}).encode("utf-8") + b"\r\n")
|
||||
|
||||
|
||||
# =====
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user