
# 推送共享应用 - PushShareApps
#### 功能介绍
推送应用tar文件至共享应用存储目录中，该功能仅在支持共享应用的云手机服务器上可实现。接口调用前请先确保已完成CPH服务操作OBS桶的委托授权。委托CPH操作OBS桶请参见[委托CPH操作OBS桶](https://support.huaweicloud.com/bestpractice-cph/cph_bp_0050.html)。
注意：不能向存在低安卓版本云手机的服务器推送高安卓版本手机导出的应用包，否则可能会造成手机数据兼容性问题。如果您使用的是physical.kg1.4xlarge.a.cp服务器规格，请确保共享存储的可用空间大于两倍的tar包大小
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/CPH/doc?api=PushShareApps)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-cph/cph_api_06000.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                       | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                        | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | cph:servers:pushShareApps | Write | server \*   | - g:EnterpriseProjectId   - g:ResourceTag/\<tag-key\>    | -  | -      |
     
  
 
#### URI
POST /v1/{project_id}/cloud-phone/phones/share-apps
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述    |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目id。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                        |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
表3请求Body参数 
| 参数              | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| package_name    | 是    | String           | 合法的应用包名。                                                                                                                                                                                                                                                                                                                              |
| pre_install_app | 否    | Integer          | 是否预装应用。 - 1：预装   - 0：不预装；默认不预装    |
| bucket_name     | 是    | String           | 合法的OBS桶名，3-63个字符，只能由小写字母、数字、中划线（-）和小数点组成                                                                                                                                                                                                                                                                                              |
| object_path     | 是    | String           | 合法的OBS对象key，最大长度1024字符。仅支持大小写字母、数字、小数点（.）、斜线（/）、中划线（-）、下划线（_）、加号（+）、井号（#）、等号等这些字符。 推送的文件只支持tar文件类型。推送时，按tar文件解压后的文件目录结构推送到手机。                                                                                                                                                                         |
| server_ids      | 是    | Array of strings | 云手机服务器ID列表。传入的服务器id个数范围为\[1, 20\]。                                                                                                                                                                                                                                                                                                    |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数         | 参数类型                                                            | 描述         |
|:---|:---|:---|
| request_id | String                                                          | 请求的唯一标识ID。 |
| jobs       | Array of [ServerJob] objects | 任务列表。      |
   
 表5ServerJob 
| 参数         | 参数类型   | 描述                             |
|:---|:---|:---|
| server_id  | String | 云手机服务器的唯一标识ID，云手机服务器相关任务包含此字段。 |
| job_id     | String | 任务的唯一标识。                       |
| error_code | String | 错误码。                           |
| error_msg  | String | 错误说明。                          |
   
#### 请求示例
将应用推送到服务器列表中的服务器上，应用来自于obs桶中
```
POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/share-apps
{
  "package_name" : "com.miniteck.miniworld",
  "bucket_name" : "bucket",
  "object_path" : "my_apps/test.tar",
  "server_ids" : [ "1234567b8bab40ffb711234cb80d0234", "1678567b8bab40f93711234cb80d0764" ]
}
```
#### 响应示例
**状态码：200**
OK
```
{
  "request_id" : "6837531fd3f54550927b930180a706bf",
  "jobs" : [ {
    "server_id" : "1234567b8bab40ffb711234cb80d0234",
    "job_id" : "1564567b8bab40f34711234cb80d0123"
  }, {
    "server_id" : "1678567b8bab40f93711234cb80d0764",
    "job_id" : "1564567b8bab40f34711234cb80d5678"
  } ]
}
```
#### 状态码
| 状态码 | 描述 |
|:---|:---|
| 200 | OK |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-cph/ErrorCode.html)。
