更新时间:2025-07-22 GMT+08:00

快速入门

场景描述

本节以调用一系列API创建一个对象数据迁移任务为例,介绍使用API的基本流程。

API的调用方法请参见如何调用API

涉及接口

前提条件

创建应用

假设已获取前提条件中的信息为如下值(实际操作中您需要根据实际情况替换):

  • IAM的Endpoint:下面示例中以iam_endpoint代替。
  • OMS的Endpoint:oms.cn-north-1.myhuaweicloud.com 。
  • 项目ID:0215ef11e49d4743be23dd97a156xxxx。
  • 源端桶的区域:cn-beijing。
  • 目的端桶的区域:cn-north-1。
  • 源端AK:下面示例中以source_ak代替。
  • 源端SK:下面示例中以source_sk代替。
  • 目的端AK:下面示例中以destination_ak代替。
  • 目的端SK:下面示例中以destination_sk代替。
  • 源端桶名:下面示例中以source_bucket代替。
  • 目的端桶名:下面示例中以destination_bucket代替。
  • 源端类型:下面示例中以cloud_type代替。

操作步骤

  1. 获取IAM用户Token。

    • 接口相关信息

      URI格式:POST /v3/auth/tokens

      详情请参见获取IAM用户Token(使用密码)

    • 请求示例
      POST: https://{iam_endpoint}/v3/auth/tokens

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

      Body:
      {
          "auth": {
              "identity": {
                  "methods": [
                      "password"
                  ],
                  "password": {
                      "user": {
                          "name": "testname",
                          "domain": {
                              "name": "testname"
                          },
                          "password": "Password"
                      }
                  }
              },
              "scope": {
                  "project": {
                      "id": "0215ef11e49d4743be23dd97a156xxxx"
                  }
              }
          }
      }

    响应Header中“X-Subject-Token”的值即为Token:

    X-Subject-Token:MIIDkgYJKoZIhvcNAQcCoIIDgzCCA38CAQExDTALBglghkgBZQMEAgEwgXXXXX...

  2. 调用创建任务接口创建迁移任务。

    • 接口相关信息

      URI格式:POST https://{endpoint}/v2/{project_id}/tasks

      详情请参见创建迁移任务

    • 请求示例
      POST: https://{endpoint}/v2/0215ef11e49d4743be23dd97a1561e91/tasks

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

      Header:

      Content-Type: application/json
      X-Auth-Token: “Token”

      Body:

      {
        "task_type" : "prefix",
        "src_node" : {
          "cloud_type" : "HuaweiCloud",
          "region" : "cn-north-1",
          "bucket" : "src_bucket",
          "ak" : "src_ak",
          "sk" : "src_sk",
          "object_key" : [ "abc", "123", "prefix3", "path/prefix4" ]
        },
        "dst_node" : {
          "region" : "cn-north-1",
          "ak" : "dst_ak",
          "sk" : "dst_sk",
          "bucket" : "dst_bucket"
        },
        "enable_kms" : false,
        "enable_failed_object_recording" : true,
        "description" : "xxx"
      }
    • 响应示例
      {
              "id" : 180890111968184,
              "task_name" : "task_name"
      }

  3. 调用查看任务接口,查看任务状态。

    • 接口相关信息

      URI格式:

      GET /v2/{project_id}/tasks/{task_id}

      详情请参见查询指定ID的任务详情

    • 请求示例
      GET: https://{endpoint}/v2/2c0689c860ad4728a497c91ec0844383/tasks/191297407830872

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

      Header:

      Content-Type: application/json
      X-Auth-Token: “Token”
    • 响应示例
      {
        "bandwidth_policy" : [ {
          "end" : "23:59",
          "max_bandwidth" : 0,
          "start" : "00:00"
        } ],
        "complete_size" : 0,
        "description" : "test log",
        "dst_node" : {
          "bucket" : "dst_bucket",
          "region" : "cn-north-1"
        },
        "enable_failed_object_recording" : true,
        "enable_kms" : true,
        "enable_restore" : false,
        "error_reason" : {
          "error_code" : "string",
          "error_msg" : "string"
        },
        "failed_num" : 0,
        "failed_object_record" : {
          "result" : true,
          "list_file_key" : "string",
          "error_code" : "string"
        },
        "group_id" : "string",
        "id" : 0,
        "is_query_over" : true,
        "left_time" : 0,
        "migrate_since" : 0,
        "migrate_speed" : 0,
        "name" : "string",
        "progress" : 0,
        "real_size" : 0,
        "skipped_num" : 0,
        "src_node" : {
          "bucket" : "src_bucket",
          "cloud_type" : "AWS",
          "region" : "cn-north-1",
          "app_id" : "string",
          "object_key" : [ "string", "string" ],
          "list_file" : {
            "list_file_key" : "object_list_file.txt",
            "obs_bucket" : "obs_bucket"
          }
        },
        "start_time" : 0,
        "status" : 0,
        "successful_num" : 0,
        "task_type" : "list",
        "total_num" : 0,
        "total_size" : 0,
        "total_time" : 0,
        "smn_info" : {
          "notify_result" : true,
          "notify_error_message" : "string",
          "topic_name" : "string"
        },
        "source_cdn" : {
          "domain" : "xxx.xxx.xxx",
          "protocol" : "http",
          "authentication_type" : "string"
        }
      }