From 3d6bbbeccf555d9c0c5dff4470c66530dfb4acb5 Mon Sep 17 00:00:00 2001 From: Wu Clan Date: Tue, 20 May 2025 18:20:27 +0800 Subject: [PATCH 1/3] Update the build plugin api params --- backend/app/admin/api/v1/sys/plugin.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/app/admin/api/v1/sys/plugin.py b/backend/app/admin/api/v1/sys/plugin.py index 9214102e0..fbb2f8a4e 100644 --- a/backend/app/admin/api/v1/sys/plugin.py +++ b/backend/app/admin/api/v1/sys/plugin.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- from typing import Annotated, Any -from fastapi import APIRouter, Depends, File, UploadFile +from fastapi import APIRouter, Depends, File, UploadFile, Path from fastapi.params import Query from starlette.responses import StreamingResponse @@ -84,14 +84,14 @@ async def update_plugin_status(plugin: Annotated[str, Query(description='插件 @router.get( - '/zip', + '/zip/{plugin}', summary='打包插件', dependencies=[ Depends(RequestPermission('sys:plugin:zip')), DependsRBAC, ], ) -async def build_plugin(plugin: Annotated[str, Query(description='插件名称')]) -> StreamingResponse: +async def build_plugin(plugin: Annotated[str, Path(description='插件名称')]) -> StreamingResponse: bio = await plugin_service.build(plugin=plugin) bio.seek(0) return StreamingResponse( From 9641120b801085ee27f967b0faeb4710f2ef592a Mon Sep 17 00:00:00 2001 From: Wu Clan Date: Tue, 20 May 2025 19:33:00 +0800 Subject: [PATCH 2/3] update seek --- backend/app/admin/api/v1/sys/plugin.py | 1 - backend/app/admin/service/plugin_service.py | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/app/admin/api/v1/sys/plugin.py b/backend/app/admin/api/v1/sys/plugin.py index fbb2f8a4e..0fac68a4f 100644 --- a/backend/app/admin/api/v1/sys/plugin.py +++ b/backend/app/admin/api/v1/sys/plugin.py @@ -93,7 +93,6 @@ async def update_plugin_status(plugin: Annotated[str, Query(description='插件 ) async def build_plugin(plugin: Annotated[str, Path(description='插件名称')]) -> StreamingResponse: bio = await plugin_service.build(plugin=plugin) - bio.seek(0) return StreamingResponse( bio, media_type='application/x-zip-compressed', diff --git a/backend/app/admin/service/plugin_service.py b/backend/app/admin/service/plugin_service.py index d15a42e16..217d2e916 100644 --- a/backend/app/admin/service/plugin_service.py +++ b/backend/app/admin/service/plugin_service.py @@ -184,6 +184,7 @@ async def build(*, plugin: str) -> io.BytesIO: arcname = os.path.relpath(file_path, start=plugin_dir) zf.write(file_path, arcname) + bio.seek(0) return bio From f231e9e4eec0332490fd6580547aabc6997a0be3 Mon Sep 17 00:00:00 2001 From: Wu Clan Date: Tue, 20 May 2025 19:35:11 +0800 Subject: [PATCH 3/3] fix lint --- backend/app/admin/api/v1/sys/plugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/app/admin/api/v1/sys/plugin.py b/backend/app/admin/api/v1/sys/plugin.py index 0fac68a4f..0d12e5c2d 100644 --- a/backend/app/admin/api/v1/sys/plugin.py +++ b/backend/app/admin/api/v1/sys/plugin.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- from typing import Annotated, Any -from fastapi import APIRouter, Depends, File, UploadFile, Path +from fastapi import APIRouter, Depends, File, Path, UploadFile from fastapi.params import Query from starlette.responses import StreamingResponse