
# 获取分段上传授权 - ShowAssetTempAuthority
#### 功能介绍
客户端请求创建媒资时，如果媒资文件超过20MB，需采用分段的方式向OBS上传，在每次与OBS交互前，客户端需通过此接口获取到授权方可与OBS交互。
该接口可以获取初始化多段上传任务、上传段、合并段、列举已上传段、取消段合并的带有临时授权的URL，用户需要根据OBS的接口文档配置相应请求的HTTP请求方法、请求头、请求体，然后请求对应的带有临时授权的URL。
视频分段上传方式和OBS的接口文档保持一致，包括HTTP请求方法、请求头、请求体等各种入参，此接口的作用是为用户生成带有鉴权信息的URL（鉴权信息即sign_str），用来替换OBS接口中对应的URL，临时给用户开通向点播服务的桶上传文件的权限。
调用获取授权接口时需要传入bucket、object_key、http_verb，其中bucket和object_key是由[创建媒资：上传方式](https://support.huaweicloud.com/api-vod/vod_04_0196.html)接口中返回的响应体中的target字段获得的bucket和object，http_verb需要根据指定的操作选择。
![](https://support.huaweicloud.com/api-vod/public_sys-resources/note_3.0-zh-cn.png)
此接口为v1.1版本，暂不支持前端跨域访问，可以后端访问。如需前端跨域访问，请使用v1.0版本接口，详见[获取分段上传授权](https://support.huaweicloud.com/api-vod/vod_04_0009.html)。
v1.1版本的接口返回结果不需要拼接url，拿到结果中的sign_str，直接发送请求即可。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/VOD/doc?api=ShowAssetTempAuthority)中调试该接口，支持自动认证鉴权。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
GET /v1.1/{project_id}/asset/authority
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                             |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID，获取方法请参考[获取项目ID](https://support.huaweicloud.com/api-vod/vod_04_0211.html) |
   
表2Query参数 
| 参数           | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| http_verb    | 是    | String  | 分段上传时调用OBS接口的HTTP方法，具体操作需要的HTTP方法请参考OBS的接口文档。 - 初始化上传任务：POST   - 上传段：PUT   - 合并段：POST   - 取消段：DELETE   - 列举已上传段：GET                                                              |
| bucket       | 是    | String  | 桶名。 调用[创建媒资：上传方式](https://support.huaweicloud.com/api-vod/vod_04_0196.html)接口中返回的响应体中的target字段获得的bucket值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| object_key   | 是    | String  | 对象名。 调用[创建媒资：上传方式](https://support.huaweicloud.com/api-vod/vod_04_0196.html)接口中返回的响应体中的target字段获得的object值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| content_type | 否    | String  | 文件类型对应的content-type，当为上传任务初始化场景该字段必填。 参数填写可参考[媒资分段上传（20M以上）](https://support.huaweicloud.com/api-vod/vod_04_0216.html)。 - 视频文件：video/视频格式，如："video/mp4"   - 音频文件：audio/音频格式，如："audio/mp3"   - 图片文件：image/图片格式，如："image/png"   - 字幕文件：application/octet-stream    |
| content_md5  | 否    | String  | 上传段时每段的MD5。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| upload_id    | 否    | String  | 每一个上传任务的id，是OBS初始化视频分段上传任务后返回的值。除上传任务初始化场景外，该字段必填。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| part_number  | 否    | Integer | 上传段时每一段的id。 取值范围：\[1,10000\]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
#### 请求参数
表3请求Header参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                      |
|:---|:---|:---|:---|
| X-Auth-Token  | 否    | String | 用户Token，使用Token鉴权方式时必选。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
| Authorization | 否    | String | 使用AK/SK方式认证时必选，携带的鉴权信息。                                                                                 |
| X-Sdk-Date    | 否    | String | 使用AK/SK方式认证时必选，请求的发生时间。                                                                                 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数       | 参数类型   | 描述                                                                                                                                                                                                                                               |
|:---|:---|:---|
| sign_str | String | 带授权签名字符串的URL。具体调用示例请参见[示例2：媒资分段上传（20M以上）](https://support.huaweicloud.com/api-vod/vod_04_0216.html)。 示例：https://{obs_domain}/{bucket}?AWSAccessKeyId={AccessKeyID}\&Expires={ExpiresValue}\&Signature={Signature} |
   
**状态码：403**
表5响应Body参数 
| 参数         | 参数类型   | 描述    |
|:---|:---|:---|
| error_code | String | 错误码。  |
| error_msg  | String | 错误描述。 |
   
#### 请求示例
- 初始化上传任务：
  ```
  GET https://{endpoint}/v1.1/{project_id}/asset/authority?http_verb=POST&content_type={type}&bucket={bucket}&object_key={objectKey}
  ```
  
- 上传段：
  ```
  GET https://{endpoint}/v1.1/{project_id}/asset/authority?http_verb=PUT&content_md5={md5}&part_number={num}&upload_id={id}&bucket={bucket}&object_key={objectKey}
  ```
  
- 合并段：
  ```
  GET https://{endpoint}/v1.1/{project_id}/asset/authority?http_verb=POST&upload_id={id}&bucket={bucket}&object_key={objectKey}
  ```
  
- 取消段：
  ```
  GET https://{endpoint}/v1.1/{project_id}/asset/authority?http_verb=DELETE&bucket={bucket}&object_key={objectKey}&upload_id={uploadId}
  ```
  
- 列举已上传的段：
  ```
  GET https://{endpoint}/v1.1/{project_id}/asset/authority?http_verb=GET&bucket={bucket}&object_key={objectKey}&upload_id={uploadId}
  ```
  
 
#### 响应示例
**状态码：200**
处理成功返回。
```
{
  "sign_str" : "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"
}
```
**状态码：403**
处理失败返回。
```
{
  "error_code" : "VOD.10053",
  "error_msg" : "The request parameter is illegal, illegal field: {xx}."
}
```
#### 状态码
| 状态码 | 描述      |
|:---|:---|
| 200 | 处理成功返回。 |
| 403 | 处理失败返回。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-vod/ErrorCode.html)。
