diff --git a/api/controllers/console/app/app_asset.py b/api/controllers/console/app/app_asset.py index 3501fc0fcb..2e718809ff 100644 --- a/api/controllers/console/app/app_asset.py +++ b/api/controllers/console/app/app_asset.py @@ -4,7 +4,6 @@ from pydantic import BaseModel, Field, field_validator from controllers.console import console_ns from controllers.console.app.error import ( - AppAssetFileRequiredError, AppAssetNodeNotFoundError, AppAssetPathConflictError, ) @@ -131,31 +130,6 @@ class AppAssetFolderResource(Resource): raise AppAssetPathConflictError() -@console_ns.route("/apps//assets/files") -class AppAssetFileResource(Resource): - @setup_required - @login_required - @account_initialization_required - @get_app_model(mode=[AppMode.ADVANCED_CHAT, AppMode.WORKFLOW]) - def post(self, app_model: App): - current_user, _ = current_account_with_tenant() - - file = request.files.get("file") - if not file: - raise AppAssetFileRequiredError() - - payload = CreateFilePayload.model_validate(request.form.to_dict()) - content = file.read() - - try: - node = AppAssetService.create_file(app_model, current_user.id, payload.name, content, payload.parent_id) - return node.model_dump(), 201 - except AppAssetParentNotFoundError: - raise AppAssetNodeNotFoundError() - except ServicePathConflictError: - raise AppAssetPathConflictError() - - @console_ns.route("/apps//assets/files/") class AppAssetFileDetailResource(Resource): @setup_required @@ -339,9 +313,7 @@ class AppAssetBatchUploadResource(Resource): payload = BatchUploadPayload.model_validate(console_ns.payload or {}) try: - result_children = AppAssetService.batch_create_from_tree( - app_model, current_user.id, payload.children - ) + result_children = AppAssetService.batch_create_from_tree(app_model, current_user.id, payload.children) return {"children": [child.model_dump() for child in result_children]}, 201 except AppAssetParentNotFoundError: raise AppAssetNodeNotFoundError() diff --git a/api/services/app_asset_service.py b/api/services/app_asset_service.py index e215fc2b55..c847bdfc4d 100644 --- a/api/services/app_asset_service.py +++ b/api/services/app_asset_service.py @@ -223,47 +223,6 @@ class AppAssetService: return node - # FIXME(Mairuis): migrate to get_file_upload_url / get_file_upload_urls API - @staticmethod - def create_file( - app_model: App, - account_id: str, - name: str, - content: bytes, - parent_id: str | None = None, - ) -> AppAssetNode: - with AppAssetService._lock(app_model.id): - with Session(db.engine, expire_on_commit=False) as session: - assets = AppAssetService.get_or_create_assets(session, app_model, account_id) - tree = assets.asset_tree - - node_id = str(uuid4()) - node = AppAssetNode.create_file(node_id, name, parent_id, len(content)) - - try: - tree.add(node) - except TreeParentNotFoundError as e: - raise AppAssetParentNotFoundError(str(e)) from e - except TreePathConflictError as e: - raise AppAssetPathConflictError(str(e)) from e - - storage_key = AssetPaths.draft_file(app_model.tenant_id, app_model.id, node_id) - storage.save(storage_key, content) - - assets.asset_tree = tree - assets.updated_by = account_id - session.commit() - - cache_key = AppAssetService._draft_storage_key_for_node( - app_model.tenant_id, - app_model.id, - assets.id, - node, - ) - AppAssetService._clear_draft_download_cache([cache_key]) - - return node - @staticmethod def get_file_content(app_model: App, account_id: str, node_id: str) -> bytes: with Session(db.engine) as session: