
# 获取上传至OBS桶的临时ak/sk - AuthorizeObs
#### 功能介绍
获取上传至OBS桶的临时ak/sk。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/WorkspaceApp/doc?api=AuthorizeObs)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-workspace/workspace_09_0128.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                                 | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项                                                                                                                                                                                                                                                                                                         |
  |:---|:---|:---|:---|:---|:---|
  | workspace:appWarehouse:authorizeObs | Write | -           | -   | -  | - obs:bucket:getBucketAcl  - obs:object:putObject  - obs:object:deleteObject   |
     
  
 
#### URI
POST /v1/{project_id}/app-warehouse/action/authorize
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述    |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                        |
|:---|:---|:---|:---|
| X-Auth-Token | 否    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
表3请求Body参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| app_file_name | 是    | String | 应用名称,名称需满足如下规则: 1. 文件名前缀由可见字符和空格组成，且不能为全空格。   2. 长度范围1\~255个字符。   3. 结尾必须是*.msi* 或者*.exe* 或者*.zip* 或者*.rar*。    |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数               | 参数类型                                            | 描述                               |
|:---|:---|:---|
| server_end_point | String                                          | 访问的服务终端节点。                       |
| bucket_name      | String                                          | 存放的桶名称。                          |
| directory        | String                                          | 存放目录。                            |
| ak               | String                                          | 获取的AK。。                          |
| sk               | String                                          | 获取的SK。                           |
| expires_at       | String                                          | AK/SK和securitytoken的过期时间。。       |
| policy           | [Policy] object | ak/sk允许的访问策略。                    |
| security_token   | String                                          | 安全校验token，将所获的AK、SK等信息进行加密后的字符串。 |
   
 表5Policy 
| 参数        | 参数类型                                                                                      | 描述           |
|:---|:---|:---|
| version   | String                                                                                    | 版本号。         |
| statement | [AuthorizeObsPolicyStatement] object | OBS桶存放的策略内容。 |
   
 表6AuthorizeObsPolicyStatement 
| 参数       | 参数类型             | 描述           |
|:---|:---|:---|
| effect   | String           | 策略操作类型。      |
| action   | Array of strings | 可以进行操作的权限合集。 |
| resource | Array of strings | 允许访问的资源。     |
   
**状态码：400**
表7响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：401**
表8响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：403**
表9响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：404**
表10响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：405**
表11响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：415**
表12响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：500**
表13响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：503**
表14响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
#### 请求示例
```
POST /v1/a4da8115c9d8464ead3a38309130523f/app-warehouse/action/authorize
{
  "app_file_name" : "Postman.exe"
}
```
#### 响应示例
**状态码：200**
成功响应。
```
{
  "server_end_point" : "https://obs.cn-nor***huaweicloud.com",
  "bucket_name" : "wks-app-test123456",
  "directory" : "file/Postman.exe",
  "ak" : "5BJ**********30",
  "sk" : "2yB**********5gt",
  "policy" : {
    "version" : "1.1",
    "statement" : {
      "effect" : "Allow",
      "action" : [ "obs:object:putObject", "obs:object:deleteObject" ],
      "resource" : [ "obs:*:*:object:wks-app-test123456/file/Postman.exe" ]
    }
  },
  "security_token" : "ggp**********iwi",
  "expires_at" : "2020-01-08T03:16:01:599000Z"
}
```
#### 状态码
| 状态码 | 描述                      |
|:---|:---|
| 200 | 成功响应。                   |
| 400 | 由于包含语法错误，当前请求无法被服务器理解。  |
| 401 | 鉴权失败。                   |
| 403 | 没有操作权限。                 |
| 404 | 找不到资源。                  |
| 405 | 请求中指定的方法不被允许。           |
| 415 | 请求中提交的资源格式不支持。          |
| 500 | 服务内部错误，具体返回错误码请参见错误码说明。 |
| 503 | 服务不可用。                  |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-workspace/ErrorCode_0.html)。
