
# 创建媒资：上传方式 - CreateAssetByFileUpload
#### 功能介绍
调用该接口创建媒资时，需要将对应的媒资文件上传到点播服务的OBS桶中。
若上传的单媒资文件大小小于20M，则可以直接用PUT方法对该接口返回的地址进行上传。具体使用方法请参考[示例1：媒资上传（20M以下）](https://support.huaweicloud.com/api-vod/vod_04_0195.html)。
若上传的单个媒资大小大于20M，则需要进行二进制流分割后上传，该接口的具体使用方法请参考[示例2：媒资分段上传（20M以上）](https://support.huaweicloud.com/api-vod/vod_04_0216.html)。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/VOD/doc?api=CreateAssetByFileUpload)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-vod/vod_04_0012.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项              | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | vod:asset:upload | Write | assets \*   | -   | -  | -      |
     
  
 
#### URI
POST /v1.0/{project_id}/asset
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                             |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID，获取方法请参考[获取项目ID](https://support.huaweicloud.com/api-vod/vod_04_0211.html) |
   
#### 请求参数
表2请求Header参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                      |
|:---|:---|:---|:---|
| X-Auth-Token  | 否    | String | 用户Token，使用Token鉴权方式时必选。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
| Authorization | 否    | String | 使用AK/SK方式认证时必选，携带的鉴权信息。                                                                                 |
| X-Sdk-Date    | 否    | String | 使用AK/SK方式认证时必选，请求的发生时间。                                                                                 |
   
表3请求Body参数 
| 参数                  | 是否必选 | 参数类型                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| title               | 是    | String                                                      | 媒资标题，长度不超过128个字节，UTF-8编码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| description         | 否    | String                                                      | 视频描述，长度不超过1024个字节。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| video_name          | 是    | String                                                      | 音视频文件名，长度不超过128个字节。 文件名后缀可选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| video_type          | 是    | String                                                      | 上传音视频文件的格式。 取值如下： - 视频文件：MP4、TS、MOV、MXF、MPG、FLV、WMV、AVI、M4V、F4V、MPEG、3GP、ASF、MKV、WEBM   - 音频文件：MP3、OGG、WAV、WMA、APE、FLAC、AAC、AC3、MMF、AMR、M4A、M4R、WV、MP2    若上传格式为音频文件，则不支持转码、添加水印和字幕。                    |
| category_id         | 否    | Integer                                                     | 媒资分类ID。 您可以调用[创建媒资分类](https://support.huaweicloud.com/api-vod/vod_04_0028.html)接口或在点播控制台的分类设置中创建对应的媒资分类，并获取分类ID。 说明： 若不设置或者设置为-1，则上传的音视频归类到系统预置的"其它"分类中。                                                                                                                                                                                                                                                                                                             |
| video_md5           | 否    | String                                                      | 建议参考《API参考》附录下生成MD5值的媒资上传和更新示例。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| cover_type          | 否    | String                                                      | 封面图片文件类型。 取值如下： - JPG   - PNG    上传后的封面名称是固定的，后缀名为封面类型缩写。例如cover0.jpg，cover1.png 若不指定类型，则封面文件无后缀名。 说明： 如果设置了图片格式，则不会执行首帧截图作为封面动作，需自行上传封面。 |
| cover_md5           | 否    | String                                                      | 封面图片文件MD5值。建议参考《API参考》附录下生成MD5值的媒资上传和更新示例。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| subtitles           | 否    | Array of [Subtitle] objects | 字幕文件信息                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| tags                | 否    | String                                                      | 视频标签。 单个标签不超过24个字节，最多不超过16个标签。 多个用逗号分隔，UTF8编码。                                                                                                                                                                                                                                                                                                                                                                                                                       |
| auto_publish        | 否    | Integer                                                     | 是否自动发布。 取值如下： - 0：表示不自动发布。   - 1：表示自动发布。    默认值：1。                                                                                                                                                      |
| template_group_name | 否    | String                                                      | 转码模板组名称。 若不为空，则使用指定的转码模板对上传的音视频进行转码，您可以在视频点播控制台配置转码模板，具体请参见《点播服务用户指南》中的"转码设置"。 说明： 若同时设置了"**template_group_name** "和"**workflow_name** "字段，则"**template_group_name**"字段生效。                                                                                                                                                                                                                                                                                           |
| auto_encrypt        | 否    | Integer                                                     | 是否自动加密。 取值如下： - 0：表示不加密。   - 1：表示需要加密。    默认值：0。 加密与转码必须要一起进行，当需要加密时，转码参数不能为空，且转码输出格式必须要为HLS。                                                                            |
| auto_preheat        | 否    | String                                                      | 是否自动预热到CDN。 取值如下： - 0：表示不自动预热。   - 1：表示自动预热。    默认值：0。                                                                                                                                                  |
| thumbnail           | 否    | [Thumbnail] object         | 截图参数。 须知：设置截图参数会产生相应的截图费用。为避免产生截图费用，可不设置此参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| review              | 否    | [Review] object               | 媒资审核参数。 说明： 仅"华北-北京一"、"华北-北京四"点播服务支持此功能。                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| workflow_name       | 否    | String                                                      | 工作流名称。 若不为空，则使用指定的工作流对上传的音视频进行处理，您可以在视频点播控制台配置工作流，具体请参见《点播服务用户指南》中的"工作流设置"。                                                                                                                                                                                                                                                                                                                                                                                                                         |
   
 表4Subtitle 
| 参数          | 是否必选 | 参数类型    | 描述                                                  |
|:---|:---|:---|:---|
| id          | 是    | Integer | 字幕id。 取值范围：\[1,16\]。 |
| type        | 是    | String  | 字幕文件类型，目前暂只支持"SRT"和"VTT"。                           |
| language    | 是    | String  | 字幕语言类型。                                             |
| name        | 否    | String  | 字幕文件名称。                                             |
| md5         | 否    | String  | 字幕文件的MD5值。                                          |
| description | 否    | String  | 字幕描述。                                               |
   
 表5Thumbnail 
| 参数             | 是否必选 | 参数类型              | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| type           | 是    | String            | 截图类型。 取值如下： - time：每次进行截图的间隔时间。   - dots: 按照指定的时间点截图。   - quantity： 按照指定张数，根据视频时长等分视频截图。    |
| quantity       | 否    | Integer           | **type**取值为quantity时必填。 按照指定张数，根据视频时长等分视频截图。 取值范围：\[1,10\]之间的整数。                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| quantity_time  | 否    | Integer           | **type**取值为quantity时选填。 按照指定时间间隔取指定张数截图。 取值范围：\[0,2147483647\]之间的整数。                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| time           | 否    | Integer           | 根据时间间隔采样时的时间间隔值。单位：秒。 **type**取值为time时。 默认值：12 取值范围：\[0,100\]之间的整数。                                                                                                                                                                                                                                                                                                                                                                      |
| dots           | 否    | Array of integers | **type**取值为dots时必填。指定时间截图时的时间点数组。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| cover_position | 否    | Integer           | 该值表示指定第几张截图作为封面。 默认值：1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| format         | 否    | Integer           | 截图文件格式。 取值如下： - 1：jpg。    默认值：1 。                                                                                                                                                                                                                                                                                         |
| aspect_ratio   | 否    | Integer           | 纵横比，图像缩放方式。 取值如下： - 0：自适应（保持原有宽高比）。   - 1：16:9。    默认值：0。                                                                                                                                                  |
| max_length     | 否    | Integer           | 截图最长边的尺寸。 单位：像素。 宽边尺寸按照该尺寸与原始视频像素等比缩放计算。 默认值：480。                                                                                                                                                                                                                                                                                                                                                                                        |
   
 表6Review 
| 参数          | 是否必选 | 参数类型    | 描述                                                                                                                                               |
|:---|:---|:---|:---|
| template_id | 否    | String  | 审核模板ID。您可以在视频点播控制台配置审核模板后获取，具体请参见《点播服务用户指南》中的"审核设置"。 说明： 仅"华北-北京一"、"华北-北京四"点播服务支持此功能。                       |
| interval    | 否    | Integer | 截图检测时间间隔，取值范围为(0,100\]，该参数在请求参数中忽略。                                                                                                              |
| politics    | 否    | Integer | 鉴政内容检测置信度，取值范围为-1或者\[0,100\]，该参数在请求参数中忽略。 置信度越高，说明审核结果越可信。未开启或设置为0时，表示未进行此项检测。politics、terrorism、porn三个参数不能同时为0。  |
| terrorism   | 否    | Integer | 鉴恐内容的检测置信度，取值范围为-1或者\[0,100\]，该参数在请求参数中忽略。 置信度越高，说明审核结果越可信。未开启或设置为0时，表示未进行此项检测。politics、terrorism、porn三个参数不能同时为0。 |
| porn        | 否    | Integer | 鉴黄内容的检测置信度，取值范围为-1或者\[0,100\]，该参数在请求参数中忽略。 置信度越高，说明审核结果越可信。未开启或设置为0时，表示未进行此项检测。politics、terrorism、porn三个参数不能同时为0。 |
   
#### 响应参数
**状态码：200**
表7响应Body参数 
| 参数                   | 参数类型                                                 | 描述                         |
|:---|:---|:---|
| asset_id             | String                                               | 媒体ID                       |
| video_upload_url     | String                                               | 视频上传URL                    |
| cover_upload_url     | String                                               | 封面上传地址                     |
| subtitle_upload_urls | Array of strings                                     | 字幕文件上传url数组                |
| target               | [File_addr] object | 媒资存储参数信息。查询接口，仅媒资为托管时有返回值。 |
   
 表8File_addr 
| 参数       | 参数类型   | 描述                                                           |
|:---|:---|:---|
| bucket   | String | OBS的bucket名称。                                                |
| location | String | 桶所在的区域名， 如"华北-北京四"的区域名为"cn-north-4"，创建的桶所在区域必须和点播服务所在区域保持一致。 |
| object   | String | 文件的存储路径。                                                     |
   
**状态码：403**
表9响应Body参数 
| 参数         | 参数类型   | 描述    |
|:---|:---|:---|
| error_code | String | 错误码。  |
| error_msg  | String | 错误描述。 |
   
#### 请求示例
创建媒资
```
POST https://{endpoint}/v1/{project_id}/asset
Content-Type: application/json
{
  "title": "Avatar test test",
  "description": "Avatar, test",
  "category_id": -1,
  "tags": "mytags",
  "video_name": "Avatar_480P.mp4",
  "video_type": "MP4",
  "video_md5": "a945d4b3d8fc317190a9332fe856f03d",
  "cover_type": "JPG",
  "cover_md5": "a655d4b3d8fc758691a9332fe387f26c",
  "auto_publish": 0,
  "subtitles": [
    {
      "id": 1,
      "language": "CN",
      "type": "SRT",
      "md5": "SqcyFjJZoDZaP8oKIY6rgQ==",
      "description": "AAAAA"
    }
  ]
}
```
#### 响应示例
**状态码：200**
处理成功返回。
```
{
  "asset_id" : "f488337c31c8e4622f1590735b134c65",
  "video_upload_url" : "https://obs.cn-north-4.myhuaweicloud.com:443/obs-vod-1/%7Bproject_id%7D/f488337c31c8e4622f1590735b134c65/Avatar_480P.mp4?AWSAccessKeyId=CBN2J**********0RCSN&Expires=1518147618&Signature=kZYh0hEos2V**********AHGyXA%3D",
  "cover_upload_url" : "https://obs.cn-north-4.myhuaweicloud.com:443/obs-vod-1/%7Bproject_id%7D/f488337c31c8e4622f1590735b134c65/cover/Cover0.jpg?AWSAccessKeyId=CBN2J**********0RCSN&Expires=1518147619&Signature=kZYh0hEos2V**********AHGyXA%3D",
  "subtitle_upload_urls" : [ "https://obs-vod-1.obs.cn-north-4.myhuaweicloud.com:443/14ce1d4437164aba8b364ce15866154e/53a018d2dc53ca07eb5a07a839205c9d/subtitle/1.srt?AWSAccessKeyId=CBN2J**********0RCSN&Expires=1534760131&Signature=kZYh0hEos2V**********AHGyXA%3D" ],
  "target" : {
    "bucket" : "obs-vod-1",
    "location" : "cn-north-4",
    "object" : "093bb6b6c4fc460ab90a40d8b821dda3/a2053aef99725711dad3e02dc6cd5f89/0a9b70035b78b8a19c6d9e7c2693d93c.mp4"
  }
}
```
**状态码：403**
处理失败返回。
```
{
  "error_code" : "VOD.10064",
  "error_msg" : "Media asset classification does not exist, please check."
}
```
#### 状态码
| 状态码 | 描述      |
|:---|:---|
| 200 | 处理成功返回。 |
| 403 | 处理失败返回。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-vod/ErrorCode.html)。
