
# 获取分段上传授权
#### 功能介绍
客户端请求创建媒资时，如果媒资文件超过20MB，需采用分段的方式向OBS上传，在每次与OBS交互前，客户端需通过此接口获取到授权方可与OBS交互。
该接口可以获取初始化多段上传任务、上传段、合并段、列举已上传段、取消段合并的带有临时授权的URL，用户需要根据OBS的接口文档配置相应请求的HTTP请求方法、请求头、请求体，然后请求对应的带有临时授权的URL。
视频分段上传方式和OBS的接口文档保持一致，包括HTTP请求方法、请求头、请求体等各种入参，此接口的作用是为用户生成鉴权信息（鉴权信息即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/notice_3.0-zh-cn.png)
当前v1.0接口支持跨域访问，如果没有跨域情况，请使用v1.1接口，详见[获取分段上传授权](https://support.huaweicloud.com/api-vod/vod_04_0197.html)。
v1.0接口返回结果需手工拼接字符生成url，拼接格式示例："https://{bucket}.obs.{region}.myhuaweicloud.com/{object}?partNumber={partNumber}\&uploadId={uploadId}\&{sign_str}"。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/VOD/doc?api=ShowAssetTempAuthorityv1)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
GET /v1.0/{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 | 授权签名字符串。 示例：AWSAccessKeyId={AccessKeyID}\&Expires={ExpiresValue}\&Signature={Signature} |
   
**状态码： 403**
表5响应Body参数 
| 参数         | 参数类型   | 描述    |
|:---|:---|:---|
| error_code | String | 错误码。  |
| error_msg  | String | 错误描述。 |
   
#### 请求示例
- 初始化上传任务：
  ```
  GET https://{endpoint}/v1.0/{project_id}/asset/authority?http_verb=POST&content_type={type}&bucket={bucket}&object_key={objectKey}
  ```
  
- 上传段：
  ```
  GET https://{endpoint}/v1.0/{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.0/{project_id}/asset/authority?http_verb=POST&upload_id={id}&bucket={bucket}&object_key={objectKey}
  ```
  
- 取消段：
  ```
  GET https://{endpoint}/v1.0/{project_id}/asset/authority?http_verb=DELETE&bucket={bucket}&object_key={objectKey}&upload_id={uploadId}
  ```
  
- 列举已上传的段：
  ```
  GET https://{endpoint}/v1.0/{project_id}/asset/authority?http_verb=GET&bucket={bucket}&object_key={objectKey}&upload_id={uploadId}
  ```
  
 
#### 响应示例
**状态码： 200**
处理成功返回。
```
{
  "sign_str" : "AWSAccessKeyId=UBWV*********N4NOJ&Expires=1730739600&Signature=47rXht3Qrd**********GiIxM40%3D"
}
```
#### 状态码
| 状态码 | 描述      |
|:---|:---|
| 200 | 处理成功返回。 |
| 403 | 处理失败返回。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-vod/ErrorCode.html)。
