文档首页/ 云手机服务器 CPH/ API参考/ 应用示例/ 云手机数据备份与恢复
更新时间:2024-12-05 GMT+08:00
分享

云手机数据备份与恢复

场景描述

当需要对云手机数据进行备份和恢复时,可以调用接口进行数据备份,在需要时再进行恢复,同时也可用于将一台云手机的数据恢复到其他云手机。

涉及接口

数据备份与恢复涉及的接口如下:

  1. 调用导出云手机数据接口进行数据备份。
  2. 调用恢复云手机数据接口进行数据恢复。

操作步骤

  1. 调用导出云手机数据接口进行数据备份。

    • 请求示例

      {endpoint}信息请从地区和终端节点获取。

      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:不能导出数据的存储路径。

      文件导出打包时仅保留路径最后一级的文件权限、属主、标签等元数据,如对打包文件的上层目录权限有要求,需指定路径到该目录,该目录下如存在其他文件,可用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目录及其包含的所有文件的权限等元数据。以此类推,如果目标手机不存在media子目录,则需要将打包路径指定到media这一层级。如果my_files中包含不需要导出的数据如test.txt,则需要在导出参数exclude_files中添/data/media/0/my_files/test.txt排除即可。

    • 响应示例
      {
        "request_id" : "6837531fd3f54550927b930180a706bf",
        "jobs" : [ {
          "phone_id" : "1234567b8bab40ffb711234cb80d0234",
          "job_id" : "1564567b8bab40f34711234cb80d0123"
        } ]
      }

      数据导出为异步接口,可通过查询任务执行状态接口查询导出任务的执行状态。

  2. 调用恢复云手机数据接口进行数据恢复。

    • 请求示例

      {endpoint}信息请从地区和终端节点获取。

      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"
        } ]
      }

      数据恢复为异步接口,可通过查询任务执行状态接口查询恢复任务的执行状态。

相关文档