
# 推送文件 - PushFile
#### 功能介绍
推送文件到云手机文件系统中。系统会将所指定的文件下载解压后，将解压后的内容全部推送到云手机的根目录下。只支持指定tar格式的文件进行推送，您需要将tar文件提前上传至您的OBS桶中。该接口为异步接口。接口调用前请先确保已完成CPH服务操作OBS桶的委托授权。委托CPH操作OBS桶请参见[委托CPH操作OBS桶](https://support.huaweicloud.com/bestpractice-cph/cph_bp_0050.html)。
- 管理面性能有限，对相同服务器批量执行的ADB命令，将会阻塞云手机其他任务执行。
  
- 允许推送的文件大小限制为6G（即不可将obs桶内大于6G的文件推送到手机中），超过限制将返回错误。
  
- 手机的系统有限制，推送到系统盘不保证推送成功，推荐把文件推送到手机的数据盘。所以在构建"tar"文件时，应将待推送的文件放到本地创建的data目录后将其打包（如tar -cvf data.tar data ），以确保把文件推送到手机的数据盘下。
  
 
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/CPH/doc?api=PushFile)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-cph/cph_api_06000.html)。
- 如果使用身份策略授权，当前API调用无需身份策略权限。
 
#### URI
POST /v1/{project_id}/cloud-phone/phones/commands
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述    |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目id。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                        |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
表3请求Body参数 
| 参数         | 是否必选 | 参数类型             | 描述                                                                                                                                                                                       |
|:---|:---|:---|:---|
| command    | 是    | String           | 推送文件固定填写push。                                                                                                                                                                            |
| content    | 是    | String           | 推送的文件只支持tar文件类型，指定OBS桶中的tar文件。 最大长度为1024字节，只支持大小写字母、数字、下划线（_）、点（.）、斜线（/）、冒号（:）、中划线（-）。文件格式：obs://obs-bucket-name/obs-file-path/file.tar，文件路径与OBS桶对象路径对应。 |
| phone_ids  | 否    | Array of strings | 云手机ID列表。 server_ids参数不存在时必选，同时存在只处理phone_ids。                                                                                                            |
| server_ids | 否    | Array of strings | 云手机服务器ID列表。 phone_ids参数不存在时必选，同时存在只处理phone_ids。                                                                                                          |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数         | 参数类型                                                          | 描述         |
|:---|:---|:---|
| request_id | String                                                        | 请求的唯一标识ID。 |
| jobs       | Array of [PhoneJob] objects | 任务列表。      |
   
 表5PhoneJob 
| 参数         | 参数类型   | 描述                       |
|:---|:---|:---|
| phone_id   | String | 云手机的唯一标识ID，云手机相关任务包含此字段。 |
| job_id     | String | 任务的唯一标识。                 |
| error_code | String | 错误码。                     |
| error_msg  | String | 错误说明。                    |
   
#### 请求示例
推送文件到云手机文件系统中。
```
POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/commands
{
  "command" : "push",
  "content" : "obs://push-bucket/my_apps/test.tar",
  "phone_ids" : [ "1234567b8bab40ffb711234cb80d0234", "1678567b8bab40f93711234cb80d0764" ]
}
```
#### 响应示例
**状态码：200**
OK
```
{
  "request_id" : "6837531fd3f54550927b930180a706bf",
  "jobs" : [ {
    "phone_id" : "1234567b8bab40ffb711234cb80d0234",
    "job_id" : "1564567b8bab40f34711234cb80d0123"
  }, {
    "phone_id" : "1678567b8bab40f93711234cb80d0764",
    "job_id" : "1564567b8bab40f34711234cb80d5678"
  } ]
}
```
#### 状态码
| 状态码 | 描述 |
|:---|:---|
| 200 | OK |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-cph/ErrorCode.html)。
