跳转到主要内容
素材通过 预签名 URL 直传 CDN/对象存储,再调用 VMEG API 完成注册。文件字节 不经过 API 网关。 本流程中所有相关 POST 均须携带 X-Idempotency-Key
获取预签名 URL 或分片发起等前置步骤可能已返回 materialId。该 ID 仅用于续传/完成上传,在整套上传流程结束前 不要 把它传给 create-async 或其他产品接口。只有在单文件 complete、分片 complete,或瞬时上传/去重响应中已返回已注册 material 之后,该 materialId 才能用于建任务。

选择上传方式

请求与响应字段:获取预签名 URL完成单文件上传,以及 API 参考Assets - Materials → upload 下的其他接口。

单文件上传

1

获取预签名 URL

POST /openapi/v1/assets/material/upload/gen-upload-url,传入 fileHash(MD5)与 fileName
2

PUT 到 CDN

若响应含 data.material,表示文件已去重,无需 PUT;否则将字节上传到 data.uploadUrl
3

完成上传

POST /openapi/v1/assets/material/upload/complete,使用 gen-upload-url 返回的 s3UrimaterialIdfileHashfileName

示例

Java 示例使用 Jackson(ObjectMapper)处理 JSON。请在项目中添加 com.fasterxml.jackson.core:jackson-databind,或改用你熟悉的 JSON 库解析响应。

分片上传

大文件流程:
  1. POST .../multipart/initiate
  2. POST .../multipart/presign-parts — presigned URL per part
  3. PUT each part to CDN and record each part ETag
  4. POST .../multipart/complete — finalize and get materialId
  5. On failure: POST .../multipart/abort
分片大小请使用 initiate 响应中的 recommendedPartSize(S3 单片通常至少 5 MB,最后一片除外)。

示例

上传之后

仅在完整上传流程成功后,才能在 音视频翻译source.materialId 中使用已注册的 materialId。管理资产见 素材