用途:通过 ibl.ai Data Manager API 管理组织目录中的媒体资源,包括媒体文件与外部链接(视频、图片、文档、音频、其他),可挂载到课程、单元、具体资源项或三者组合。适用于为目录内容附加媒体、浏览或搜索组织媒体、上传媒体文件。
主要能力:媒体资源支持列表/筛选、完整 CRUD、search 搜索动作和 by_item 按项查询。item_type(媒体关联的目录层级)由服务端根据传入的 course_id / unit_id / item_id 自动推导,客户端不发送。
使用方式:基础 URL 为 https://api.iblai.app/dm,所有路由位于 /api/media/orgs/{org}/users/{user_id}/media/media-resources/ 下。每个请求需带请求头 Authorization: Api-Token $IBLAI_API_KEY。{org} 对应 $IBLAI_ORG,{user_id} 为数字用户 id(非用户名)。未连接时先运行 /iblai-api-login 以填充 IBLAI_ORG、IBLAI_USERNAME 和 IBLAI_API_KEY。
读取:GET …/media-resources/ 列出媒体资源(分页,最新在前),筛选参数按优先级互斥:search,否则 course_id + unit_id,否则 course_id,否则 unit_id,否则 item_id;id 筛选会包含跨越该层级的 item_type 行。GET …/media-resources/{id}/ 按数字 id 获取单条。GET …/media-resources/search/ 为分页搜索,q 必填。GET …/media-resources/by_item/ 按目录项获取媒体,item_type 与 item_id 均必填,缺失返回 400。
写入:POST …/media-resources/ 创建(仅管理员),接受 JSON 或 multipart/form-data;course_id / unit_id / item_id 至少提供一个;item_type 服务端计算且只读。PUT 为完整更新,PATCH 为部分更新,DELETE 按 id 删除,均仅管理员。同一 item_type + item_id 下重复的 file/file_url 会被拒绝(400)。删除、上传等破坏性或对外调用需先与用户确认。
限制:路径中的 {user_id} 必须拥有指向 {org} 平台的有效 UserPlatformLink;读取仅需该链接,写入还需该链接为管理员(is_admin)。用户不存在、组织未知或无有效链接均会失败。对象级访问还要求资源所属 platform.org 等于路径中的 {org}。分页信封为自定义结构(status + results),page_size 默认 10、最大 100。media_type 取值:video、image、document、audio、other。item_type 取值:course、unit、resource、course_unit、course_resource、unit_resource、all。