更新时间:2024-12-12 GMT+08:00

创建文件并获取上传URL

功能介绍

该接口用于创建文件并获取上传URL。

调用方法

请参见如何调用API

URI

POST /v1/{project_id}/files

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方法请参考获取项目ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。使用Token鉴权方式时必选。

通过调用IAM服务获取用户Token接口获取。

响应消息头中X-Subject-Token的值。

Authorization

String

使用AK/SK方式认证时必选,携带的鉴权信息。

X-Sdk-Date

String

使用AK/SK方式认证时必选,请求的发生时间。

格式为(YYYYMMDD'T'HHMMSS'Z')。

X-App-UserId

String

第三方用户ID。不允许输入中文。

表3 请求Body参数

参数

是否必选

参数类型

描述

file_name

String

参数解释

文件名。

约束限制

不区分大小写。

取值范围

字符长度1-256位。

默认取值

不涉及

file_md5

String

参数解释

文件内容MD5值。按照RFC 1864标准计算出消息体的MD5摘要字符串,即消息体128-bit MD5值经过base64编码后得到的字符串。

md5值获取详情请参考使用Java代码生成文件内容的MD5值

约束限制

不涉及

取值范围

字符长度24位。

默认取值

不涉及

file_size

Long

参数解释

文件总的大小。

约束限制

最大支持5GB

默认取值

不涉及

取值范围:

1-5368709120

file_type

String

参数解释

文件类型

约束限制

不涉及

取值范围

字符长度1-64位。

默认取值

默认提取文件后缀。

asset_id

String

参数解释

本平台资产ID。

约束限制

不涉及

取值范围

字符长度1-64位。

默认取值

不涉及

asset_file_category

String

参数解释

文件在资产中的分类。每种资产类型包含的文件分类不同。

  • MAIN:主文件

  • COVER:封面文件

  • PAGE:PPT内容页图片文件

  • SAMPLE:样例音频或样例动作文件

  • OTHER:其他文件

  • WHOLE_MODEL:全模型文件(3D数字人)

  • USER_MODIFIED_MODEL:用户上传模型(3D数字人)

  • TEMPORARY:临时文件夹(用于文件替换时上传新文件)

  • PACKAGE:打包后的资产文件

说明:
  • 资产类型为SCENE、ANIMATION、VIDEO、IMAGE、MATERIAL时,包含MAIN、COVER和OTHER

  • 资产类型为PPT时,包含MAIN、COVER、PAGE和OTHER

  • 资产类型为HUMAN_MODEL时,包含MAIN、COVER、WHOLE_MODEL、USER_MODIFIED_MODEL和OTHER

  • 资产类型为VOICE_MODEL时,包含MAIN、SAMPLE(样例音频文件)和OTHER

  • 资产类型为HUMAN_MODEL_2D时,包含MAIN、COVER、SAMPLE(动作样例)和OTHER

  • 资产类型为BUSINESS_CARD_TEMPLET时,包含MAIN和COVER(名片效果图)

  • 资产类型为IMAGE时,包含MAIN

  • 资产类型为VIDEO时,包含MAIN、COVER

约束限制

一个资产中MAIN文件只有一个,且必须有一个

取值范围

字符长度1-128位。

默认取值

不涉及

响应参数

状态码: 200

表4 响应Header参数

参数

参数类型

描述

X-Request-Id

String

请求ID。

表5 响应Body参数

参数

参数类型

描述

file_id

String

文件ID。

upload_url

String

文件上传地址,有效期为24小时。

说明:
  • 调用OBS的“PUT上传”接口上传文件。

  • 调用上述接口时,Content-MD5头必须填写,填写的值跟file_md5中的值相同,md5值获取详情请参考使用Java代码生成文件内容的MD5值

  • 调用上述接口时,Content-Type头必须填写,填写的值根据不同的文件类型有所不同。

    文件类型为gif,Content-Type填写image/gif

    文件类型为jpeg、jpg,Content-Type填写image/jpeg

    文件类型为png,Content-Type填写image/png

    文件类型为mp4,Content-Type填写video/mp4

    文件类型为mp3,Content-Type填写audio/mp3

    文件类型为wav,Content-Type填写audio/wav

    其余所有类型,Content-Type填写application/octet-stream

状态码: 400

表6 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误描述。

状态码: 401

表7 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误描述。

状态码: 500

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误描述。

请求示例

POST https://{endpoint}/v1/6a6a1f8354f64dd9b9a614def7b59d83/files

{
  "file_name" : "1.png",
  "file_md5" : "n58IG6hfM7vqI4K0vnWpog==",
  "file_size" : 1048576,
  "file_type" : "png",
  "asset_id" : "8cb2f48a2cb006154794741933421100",
  "asset_file_category" : "MAIN"
}

响应示例

状态码: 200

成功。

{
  "file_id" : "b2f8a9e9c39b6dc7ed4c0cfd67366c6a",
  "upload_url" : "https://{endpoint}:443/0d697589d98091f12f92c0073501cd79/8cb2f48a2cb006154794741933421100/b2f8a9e9c39b6dc7ed4c0cfd67366c6a.jpg?AccessKeyId=XCQKTA8IWQPCAUQS4SDA&Expires=1671154644&Signature=vXxiJTO239WZcG8sniotTe9qOc4%3D"
}

状态码: 400

{
  "error_code" : "MSS.00000003",
  "error_msg" : "Invalid parameter"
}

状态码: 401

{
  "error_code" : "MSS.00000001",
  "error_msg" : "Unauthorized"
}

状态码: 500

{
  "error_code" : "MSS.00000004",
  "error_msg" : "Internal Error"
}

状态码

状态码

描述

200

成功。

400

请求传参异常,包含错误码及对应描述。

401

未鉴权或鉴权失败。

500

内部服务错误。

错误码

请参见错误码