应用资产服务
application-asset-service 为已授权应用提供统一的资产写入、查询、读取和下载能力。
能力信息
| 字段 | 值 |
|---|---|
| 能力 Key | application-asset-service |
| 能力名称 | 应用资产服务 |
| 能力类型 | application_asset_service |
| 分类 | FunClaw通用能力 |
| 开放状态 | 可通过统一开放能力执行入口调用 |
授权动作
管理员向应用授权 application-asset-service 后,后端会展开到asset.write、asset.query、asset.read、asset.download 四个动作。外部应用调用接口时不需要传入这些动作 key。
资产类型
TEXT:文本内容写入平台资产账本。IMAGE、AUDIO、VIDEO、DOCUMENT: 支持通过外部 URL 写入,也支持通过multipart/form-data上传原始文件;平台写入对象存储后保存资产指针。
接口
POST /api/open/v1/capabilities/application-asset-service/assetsPOST /api/open/v1/capabilities/application-asset-service/assets multipart/form-dataGET /api/open/v1/capabilities/application-asset-service/assetsGET /api/open/v1/capabilities/application-asset-service/assets/{assetId}GET /api/open/v1/capabilities/application-asset-service/assets/{assetId}/downloadAuthorization: Bearer <sk-funclaw-api-key>写入文本资产
{ "type": "TEXT", "title": "会议纪要", "text": "这里是正文", "mimeType": "text/plain", "metadata": { "source": "external-app" }}写入图片资产
{ "type": "IMAGE", "title": "封面图", "url": "https://example.com/cover.png", "fileName": "cover.png", "mimeType": "image/png", "metadata": { "scene": "campaign-cover" }}写入音频资产
{ "type": "AUDIO", "title": "访谈音频", "url": "https://example.com/voice.mp3", "fileName": "voice.mp3", "mimeType": "audio/mpeg", "metadata": { "durationSeconds": 180 }}写入视频资产
{ "type": "VIDEO", "title": "活动片段", "url": "https://example.com/clip.mp4", "fileName": "clip.mp4", "mimeType": "video/mp4", "metadata": { "scene": "event-highlight" }}写入文档资产
{ "type": "DOCUMENT", "title": "项目报告", "url": "https://example.com/report.pdf", "fileName": "report.pdf", "mimeType": "application/pdf", "metadata": { "department": "operations" }}上传原始文件资产
curl -X POST "https://api.example.com/api/open/v1/capabilities/application-asset-service/assets" \ -H "Authorization: Bearer <sk-funclaw-api-key>" \ -F "type=IMAGE" \ -F "title=封面图" \ -F "file=@./cover.png;type=image/png" \ -F "metadata={\"scene\":\"campaign-cover\"}"响应示例
{ "assetId": "cccccccc-cccc-cccc-cccc-cccccccccccc", "orgId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", "applicationId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb", "type": "IMAGE", "title": "封面图", "mimeType": "image/png", "fileName": "cover.png", "fileSize": 12048, "status": "READY", "metadata": { "scene": "campaign-cover" }, "createdAt": "2026-06-11T08:00:00Z", "updatedAt": "2026-06-11T08:00:00Z"}查询和读取
写入成功后,响应里的 assetId 是后续读取、下载和交接资产的主标识。 已知 assetId 时,调用 GET /assets/{assetId} 读取详情; 文件型资产需要内容时,调用 GET /assets/{assetId}/download。
如果不知道 assetId,调用 GET /assets 查询当前 API Key 资源域内的资产列表。 常用过滤参数包括 type、status、keyword、mimeType、sourceCapabilityKey 和 metadataEquals。metadataEquals 使用 JSON 对象字符串,只做顶层字段等值匹配。
数据边界
API Key 绑定的主体用于授权和调用来源校验;资产查询、读取和下载按当前授权上下文的资源域隔离。 外部数字员工 Key 只能看到该外部数字员工身份写入的资产。调用方不能通过请求体里的applicationId、capabilityKey、metadata 或来源字段改变资产空间。