
# 云手机数据备份与恢复
#### 场景描述
当需要对云手机数据进行备份和恢复时，可以调用接口进行数据备份，在需要时再进行恢复，同时也可用于将一台云手机的数据恢复到其他云手机。
#### 涉及接口
数据备份与恢复涉及的接口如下：
1. 调用[导出云手机数据](https://support.huaweicloud.com/api-cph/cph_api_0538.html)接口进行数据备份。
2. 调用[恢复云手机数据](https://support.huaweicloud.com/api-cph/cph_api_0539.html)接口进行数据恢复。
 
#### 操作步骤
1. 调用[导出云手机数据](https://support.huaweicloud.com/api-cph/cph_api_0538.html)接口进行数据备份。
   
   - 请求示例 {endpoint}信息请从[地区和终端节点](https://console.huaweicloud.com/apiexplorer/#/endpoint/CPH)获取。
     ```
     POST https://{endpoint}/v1/{project_id}/cloud-phone/phones/batch-storage
     {
       "storage_infos" : [ {
         "phone_id" : "1234567b8bab40ffb711234cb80d0234",
         "include_files" : [ "/data/app", "/data/local", "/data/media" ],
         "exclude_files" : [ "/data/app/com.xx.xx-*" ],
         "bucket_name" : "mybucket",
         "object_path" : "myimage/v1/xxxxx.tar"
       } ]
     }
     ```
     您需要指定如下参数：
     - phone_id：要导出数据的手机ID。
     
     - bucket_name：导出数据所存储的OBS桶名。
     
     - object_path：导出数据所存储的OBS路径。
     
     - include_files：需要导出数据的存储路径。
     
     - exclude_files：不能导出数据的存储路径。
     
     
     ![](https://support.huaweicloud.com/api-cph/public_sys-resources/caution_3.0-zh-cn.png)
     - 文件导出打包时仅保留路径最后一级的文件权限、属主、标签等元数据，如对打包文件的上层目录权限有要求，需指定路径到该目录，该目录下如存在其他文件，可用exclude_files参数排除。 示例如下：
       - 导出数据的路径为：/data/media/0/my_files/test.png
       
       
       导出打包后仅保留test.png的文件权限等，其父目录的文件权限等均不会保留。如果需要恢复的手机中存在/data/media/0/目录而不存在my_files子目录，则恢复后目标手机的/data/media/0/my_files/test.png文件会因丢失my_files父目录的权限等元数据而无法正常使用。
       - 解决办法：修改导出文件的路径为/data/media/0/my_files
       
       
       这样导出打包后会保留my_files目录及其包含的所有文件的权限等元数据。如果my_files中包含不需要导出的数据如test.txt，则需要在导出参数exclude_files中添/data/media/0/my_files/test.txt排除即可。以此类推，如果目标手机不存在media子目录，则需要将打包路径指定到media这一层级。
       
     
     - 导出部分手机目录时需要同时打包依赖的其他目录，否则可能会引起手机异常。 例如，对于AOSP14，如果需要打包/data/misc目录，则必须同时打包/data/system和/data/system_de目录，否则会导致手机无法正常启动。
       
       
   
   - 响应示例
     ```
     {
       "request_id" : "6837531fd3f54550927b930180a706bf",
       "jobs" : [ {
         "phone_id" : "1234567b8bab40ffb711234cb80d0234",
         "job_id" : "1564567b8bab40f34711234cb80d0123"
       } ]
     }
     ```
     数据导出为异步接口，可通过[查询任务执行状态](https://support.huaweicloud.com/api-cph/cph_api_0521.html)接口查询导出任务的执行状态。
     
   
   
   
   
2. 调用[恢复云手机数据](https://support.huaweicloud.com/api-cph/cph_api_0539.html)接口进行数据恢复。
   
   - 请求示例 {endpoint}信息请从[地区和终端节点](https://console.huaweicloud.com/apiexplorer/#/endpoint/CPH)获取。
     ```
     POST https://{endpoint}/v1/{project_id}/cloud-phone/phones/batch-restore
      
     {
       "restore_infos" : [ {
         "phone_id" : "1234567b8bab40ffb711234cb80d0234",
         "bucket_name" : "mybucket",
         "object_path" : "myimage/v1/xxxx.tar"
       } ]
     }
     ```
     您需要指定如下参数：
     - phone_id、bucket_name、object_path：分别对应[步骤1]中的内容。
      
   
   - 响应示例
     ```
     {
       "request_id" : "6837531fd3f54550927b930180a706bf",
       "jobs" : [ {
         "phone_id" : "1234567b8bab40ffb711234cb80d0234",
         "job_id" : "1564567b8bab40f34711234cb80d0123"
       } ]
     }
     ```
     数据恢复为异步接口，可通过[查询任务执行状态](https://support.huaweicloud.com/api-cph/cph_api_0521.html)接口查询恢复任务的执行状态。
     
   
   
   
   
 
