旧版兼容
本页供已使用旧上传请求或历史素材的客户端查阅。新接入从上传素材开始,按“创建素材 → 按目标模型准备 → 查询状态”使用 V2;需要托管副本时再归档。
请求格式与记录语义
旧请求格式不等于历史记录。相同的旧请求格式,在已接入 V2 的兼容上传中会建立新的可信内容快照;已有历史记录不会因服务升级或添加请求头而自动升级。
| 情况 | 输入与行为 | 如何读取结果 |
|---|---|---|
| 严格 V2 创建 | POST /v1/assets,设置 Asset-Contract: v2。不接受 model / mode,创建与目标模型准备分开。 | 身份、storage、目标模型的 preparation 分别判断;创建本身不认证目标模型。 |
| V2 下的旧上传兼容请求 | POST /v1/assets/uploads,不带 V2 契约头,沿用 mode 等旧字段。mode=asset 也先建立可信托管快照,再做目标模型准备。 | url / source_url 兼容别名只返回安全托管 URL,不返回原始输入 URL;准备结果按同一目标模型判断。 |
| 未升级的历史记录 | 保留原有生命周期和原始 URL 语义;旧 mode=asset 不代表已有托管副本。 | 按本页历史字段解释;需要确认当前模型可用性时查询并显式 Prepare。 |
MoonApiX-Asset-Contract: v2 仍是兼容头;每个请求只设置一个契约头。POST /v1/assets/uploads 携带任一 V2 契约头时也会选择严格 V2 创建,不能再提交旧 model / mode 请求体。成功的 V2 响应使用规范头 Asset-Contract: v2。
兼容上传仅做 OSS 归档时,未传 model 不返回 preparation 或旧顶层准备状态别名;传了 model 只读取该模型的准备投影,不触发认证。模型不可用或无权限不会阻止身份建立和 OSS 归档,而会反映在准备结果中。身份建立后,归档或准备失败仍保留 asset_id 和身份 status=ready。
旧请求入口
| 操作 | 路径 | 兼容入口 |
|---|---|---|
| 上传素材 | POST /v1/assets/uploads | POST /api/asset/createMedia |
| 素材列表 | GET /v1/assets | 使用现有列表接口。 |
| 素材详情 | GET /v1/assets/{asset_id} | GET /api/asset/get |
新代码使用规范路径;列表与详情的参数见查询素材。修改名称、移动分组和删除见管理素材。
公网 URL 上传
以下是旧请求格式,不设置 V2 契约头。服务端的实际快照和 URL 返回行为按上表区分,不能据此假定新建记录仍只保存原始 URL。
curl https://moonapix.com/v1/assets/uploads \
-H "Authorization: Bearer <MOONAPIX_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0-kz-fast",
"mode": "asset",
"type": "image",
"url": "https://example.com/reference.png"
}'本地文件上传
curl https://moonapix.com/v1/assets/uploads \
-H "Authorization: Bearer <MOONAPIX_API_KEY>" \
-F "file=@./reference.png" \
-F "type=image" \
-F "purpose=video_reference" \
-F "mode=oss"未接入 V2 的旧上传路径仅支持文件 mode=oss 或 mode=both。V2 兼容上传在指定支持素材准备的目标模型时,也支持文件 mode=asset。严格 V2 创建不使用 mode。
| 字段 | 用途 |
|---|---|
file / url | 本地文件或已有公网直链。JSON 也支持 urls,每个 URL 创建一条素材记录。 |
type | 素材类型,如 image、audio、video。 |
model | 需要素材准备的目标公开模型;先确认模型支持的素材策略。 |
mode | 旧上传模式,见下表。 |
group_id | 可选;不传使用默认分组。使用真人活体认证组时传入认证结果的 group_id,组初始可以为空。 |
purpose | 可选;如 video_reference、digital_human_avatar、voice_training。 |
历史 mode 语义
下表的原始 URL 和托管行为仅适用于未升级的历史记录。V2 兼容新记录以兼容上传规则为准。
| mode | 历史保存行为 | 常见返回 |
|---|---|---|
asset | 保存客户公网 URL,并创建素材引用。 | asset_id、asset_ref;url 通常等于原始 source_url。 |
oss | 创建 MoonApiX OSS 测试 URL。 | asset_id、url、oss_url;不代表模型准备完成。 |
both | 同时创建托管副本和素材引用。 | asset_id、asset_ref、url、oss_url;准备结果仍需单独判断。 |
MoonApiX OSS 仅供联调和测试,不承诺长期保存、URL 长期有效或持续可用性。正式业务使用客户自有存储的稳定匿名公网直链。新接入使用 V2 分别表达创建、归档和准备,不再通过 mode 合并操作。
历史素材字段
下表描述未升级的历史响应。V2 响应中的兼容别名不改变 V2 三层含义,尤其不能把其 source_url 当作原始输入 URL。
| 字段 | 历史含义 |
|---|---|
object | 对象类型,通常为 asset。 |
id / asset_id | MoonApiX 素材 ID,格式为 asset_xxx。 |
reference / asset_ref | MoonApiX 素材引用,格式为 Asset://asset_xxx。使用时仍须放入生成请求的素材输入字段。 |
group_id / domain | 所属分组与用途域;常见用途域为 media。 |
type / asset_type | 素材类型,如 image、audio、video、file。 |
name / description | 素材名称与说明。 |
source_url | 创建时传入的原始公网 URL。 |
url | 客户可用 URL;历史 mode=asset 通常为原始 URL,oss / both 通常为托管 URL。 |
oss_url | 托管测试 URL;历史 mode=oss / both 通常有值,不保证长期有效。 |
content | 可放入生成请求的内容片段,图片常见为 content.image_url.url。 |
content_type / size / duration | MIME 类型、字节数、音视频时长(秒)。 |
| 状态与审核字段 | 见历史状态与后续动作。 |
visibility | 通常为 private。 |
created_at / updated_at | 创建与更新时间。 |
request_id / trace_id | 排查问题时提供的请求与跟踪 ID。 |
历史状态与后续动作
| 字段 | 历史常见值 | 含义 |
|---|---|---|
status | created、syncing、ready、failed、disabled | 素材记录状态,单独 ready 不证明目标模型准备完成。 |
sync_status | created、syncing、ready、failed | 素材引用准备状态。 |
preparation_status | created、syncing、ready、failed、disabled | 生成前准备状态。 |
generation_ready | true / false | 同一目标模型和调用范围内的准备结果,不保证立即执行。 |
review_status | succeeded、pending、failed、unknown | 审核证据;succeeded 不等于已完成准备。 |
review_passed | true / false | 是否通过审核或可用性检查,不能替代生成准备判断。 |
sync_error | string | 准备失败原因。 |
历史响应通常结合 preparation_status=ready 与 generation_ready=true 判断准备结果,不必把所有审核字段同时作为成功前提。review_status=unknown 不单独阻断已确认可用的准备;审核成功也不能覆盖准备失败。
V2 兼容响应的 sync_status / preparation_status 如有返回,会映射同一目标模型和调用范围的 preparation.status,也可能为 not_started、processing、not_required、unknown。新代码读取 preparation.*,不要套用历史枚举。
| 查询结果 | 后续动作 |
|---|---|
已确认的历史准备流程仍在 syncing | 保留同一 asset_id,按该流程等待和续查;不要反复创建。 |
V2 not_started、processing 或 unknown | 显式调用同一素材的 Prepare 建立、推进或确认准备。GET 只读取保存的结果,不推进准备,单纯等待不能补充证据。 |
| 准备失败 | 读取准备错误,检查内容、权限或素材来源;可重试时复用同一 asset_id。内容不合格时更换素材。 |
只有 generation_ready=false,无法确定原因 | 按目标 model 查询完整准备状态,再决定是否 Prepare 或处理错误;不要统一按“等候后继续 GET”处理。 |
V2 的生成准备判断是同一目标模型和调用范围下,素材身份 status=ready、preparation.status 为 ready 或 not_required,且 preparation.generation_ready=true。切换模型时重新查询该模型的准备结果;不能复用另一范围的 true。
历史响应示例
以下是未升级历史记录的示意片段,原始 URL 语义不适用于 V2 新记录。
{
"object": "asset",
"id": "asset_xxx",
"asset_id": "asset_xxx",
"asset_ref": "Asset://asset_xxx",
"reference": "Asset://asset_xxx",
"type": "image",
"group_id": "group_xxx",
"source_url": "https://example.com/reference.png",
"url": "https://example.com/reference.png",
"oss_url": "",
"status": "ready",
"sync_status": "syncing",
"preparation_status": "syncing",
"generation_ready": false
}这个历史记录已建立,但尚不能据此生成。审核通过后仍可能在准备阶段失败,出现 review_status=succeeded、preparation_status=failed、generation_ready=false;应读取 sync_error,不能仅凭审核字段继续生成。V2 会保留身份,只在对应准备层表达失败。