diff --git a/apps/api/app/api/routes/assets.py b/apps/api/app/api/routes/assets.py index 6c40e6af4..e94d61f91 100755 --- a/apps/api/app/api/routes/assets.py +++ b/apps/api/app/api/routes/assets.py @@ -677,52 +677,12 @@ def untag_asset( @router.post("", response_model=AssetResponse) -def create_asset( - request: CreateAssetRequest, - authenticated_user: AuthenticatedUser = Depends(get_current_user), -) -> AssetResponse: - # 统一上传路径:所有素材必须走 ingest-jobs 接口 - # 前端上传 OSS → completeDirectUpload → _submit_ingest_job → Worker 处理 +def create_asset() -> None: + """ + 已废弃接口。 + 所有素材上传统一走 uploadAssetDirect → completeDirectUpload → ingest-jobs 流程。 + """ raise HTTPException( status_code=410, - detail="此接口已废弃。请使用 uploadAssetDirect 接口上传素材,Worker 会自动处理(视频转码、图片/音频元数据提取)并创建 Asset 记录。" + detail="此接口已废弃。请使用 uploadAssetDirect 接口上传素材,Worker 会自动处理(视频转码、图片/音频元数据提取)并创建 Asset 记录。", ) - if library is None: - raise HTTPException(status_code=404, detail=f"AssetLibrary {request.library_id} not found") - - # project_id 自动推导:优先用请求值,否则从 library 关联的项目获取 - project_id = request.project_id or library.project_id - - project = project_repository.find_by_id(project_id) - if project is None: - raise HTTPException(status_code=404, detail=f"Project {project_id} not found") - if not project.can_access(authenticated_user.user.id): - raise HTTPException(status_code=403, detail="Access denied to project") - - # 确保 library 和 project 归属一致 - if library.project_id != project_id: - raise HTTPException(status_code=400, detail="AssetLibrary does not belong to the specified project") - - use_case = CreateAssetUseCase(asset_repository) - item = use_case.execute( - CreateAssetCommand( - project_id=project_id, - library_id=request.library_id, - name=request.name, - storage_key=request.storage_key, - mime_type=request.mime_type, - metadata=request.metadata, - file_size=request.file_size, - thumbnail_url=request.thumbnail_url, - duration=request.duration, - width=request.width, - height=request.height, - fps=request.fps, - codec=request.codec, - status=AssetStatus(request.status), - classification_status=ClassificationStatus(request.classification_status), - quality_score=request.quality_score, - uploaded_by_user_id=authenticated_user.user.id, - ) - ) - return _to_asset_response(item) diff --git a/apps/web/src/api/assets/assets.ts b/apps/web/src/api/assets/assets.ts index d54e52c54..c436295c5 100644 --- a/apps/web/src/api/assets/assets.ts +++ b/apps/web/src/api/assets/assets.ts @@ -60,18 +60,6 @@ export const smartMatchAssets = async (libraryId: string): Promise<{ items: Asse return response.data } -/** 创建素材(上传文件后调用,附带 metadata) */ -export const createAsset = async (data: { - library_id: string - name: string - storage_key: string - mime_type: string - metadata?: AssetMetadata -}): Promise => { - const response = await apiClient.post("/assets", data) - return response.data -} - /** 更新素材(名称、metadata 等) */ export const updateAsset = async ( assetId: string, diff --git a/apps/web/src/api/assets/index.ts b/apps/web/src/api/assets/index.ts index 22654854e..ba460863d 100644 --- a/apps/web/src/api/assets/index.ts +++ b/apps/web/src/api/assets/index.ts @@ -34,7 +34,6 @@ export { getAssets, getAssetsByKind, smartMatchAssets, - createAsset, updateAsset, updateAssetReviewStatus, deleteAsset,