
# 示例1：创建迁移任务
#### 场景描述
本章节指导用户通过API创建迁移任务。API的调用方法请参见[如何调用API](https://support.huaweicloud.com/api-oms/oms_api_0006.html)。
创建迁移任务时，支持的任务类型有：URL列表迁移、对象前缀迁移、对象列表迁移、文件/文件夹迁移。本节我们以创建文件/文件夹迁移任务为例，介绍如何创建迁移任务。
#### 涉及接口
- [获取IAM用户Token（使用密码）](https://support.huaweicloud.com/api-iam/iam_30_0001.html)：用于鉴权认证。
- [创建迁移任务](https://support.huaweicloud.com/api-oms/CreateTask.html)：通过源端和目的端的AK和SK创建迁移任务。
- [查询指定ID的任务详情](https://support.huaweicloud.com/api-oms/ShowTask.html)：根据迁移任务ID查询任务详情，确定迁移任务是否创建成功。
 
#### 前提条件
- 已获取源端云服务平台的AK/SK。
- 已获取目的端AK/SK，参见[创建访问密钥(AK/SK)](https://support.huaweicloud.com/browsertg-obs/obs_03_1007.html))。
- 已获取IAM和OMS的Endpoint，参见[地区和终端节点](https://developer.huaweicloud.com/endpoint)。
- 已获取源端桶的区域。
- 已创建目的端桶，参见[创建桶](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829088.html)。
- 已获取目的端桶的区域，参见[查看桶的信息](https://support.huaweicloud.com/usermanual-obs/obs_03_0312.html)。
- 已获取项目ID，参见[获取项目ID和任务ID](https://support.huaweicloud.com/api-oms/oms_api_0026.html)。
 
#### 操作步骤
1. 获取IAM用户Token。 
   - 接口相关信息 URI格式：POST /v3/auth/tokens
     详情请参见[获取IAM用户Token（使用密码）](https://support.huaweicloud.com/api-iam/iam_30_0001.html)。
     
   
   - 请求示例
     ```
     POST: https://{iam_endpoint}/v3/auth/tokens
     ```
     {endpoint}信息请从[地区和终端节点](https://developer.huaweicloud.com/endpoint?IAM)获取。
     Body：
     ```
     {
         "auth": {
             "identity": {
                 "methods": [
                     "password"
                 ],
                 "password": {
                     "user": {
                         "name": "username",
                         "domain": {
                             "name": "domainname"
                         },
                         "password": "******"
                     }
                 }
             },
             "scope": {
                 "project": {
                     "id": "0215ef11e49d4743be23dd97a1561e91"
                 }
             }
         }
     }
     ```
     
   
   
   响应Header中"X-Subject-Token"的值即为Token：
   ```
   X-Subject-Token:MIIDkgYJKoZIhvcNAQcCoIIDgzCCA38CAQExDTALBglghkgBZQMEAgEwgXXXXX...
   ```
   
   
2. 调用创建任务接口创建迁移任务。 
   - 接口相关信息 URI格式：POST /v2/{project_id}/tasks
     详情请参见[创建迁移任务](https://support.huaweicloud.com/api-oms/CreateTask.html)。
     
   
   - 请求示例
     ```
     POST: https://{oms_endpoint}/v2/{project_id}/tasks
     ```
     {endpoint}信息请从[地区和终端节点](https://developer.huaweicloud.com/endpoint?OMS)获取。
     Header：
     ```
     Content-Type: application/json
     X-Auth-Token: "Token"
     ```
     Body：
     ```
     {
     "src_node" : {
     "region" : "source_bucket_region",
     "ak" : "source_ak",
     "sk" : "source_sk",
     "bucket" : "source_bucket",
     "cloud_type" : "cloud_type",
     "object_key" : ["01.png", "list.txt"]
     },
     "description" : "",
     "dst_node" : {
     "region" : "destination_bucket_region",
     "ak" : "destination_ak",
     "sk" : "destination_sk",
     "bucket" : "destination_bucket"
     },
     "enable_failed_object_recording" : true,
     "enable_restore" : false,
     "task_type" : "object"
     }
     ```
     
   
   - 响应示例
     ```
     {
             "id" : 200477729979132,
             "task_name" : "task_name"
     }
     ```
     
   
   
   
   
3. 调用查看任务接口，查看任务状态。 
   - 接口相关信息 URI格式：
     ```
     GET /v2/{project_id}/tasks/{task_id}
     ```
     详情请参见[查询指定ID的任务详情](https://support.huaweicloud.com/api-oms/ShowTask.html)。
     
   
   - 请求示例
     ```
     GET: https://{oms_endpoint}/v2/{project_id}/tasks/{task_id}
     ```
     {endpoint}信息请从[地区和终端节点](https://developer.huaweicloud.com/endpoint?OMS)获取。
     Header：
     ```
     Content-Type: application/json
     X-Auth-Token: “Token”
     ```
     
   
   - 响应示例
     ```
     {
     "bandwidth_policy" : [],
     "complete_size" : 2223728,
     "description" : "",
     "dst_node" : {
     "bucket" : "api-test-outline",
     "region" : "cn-north-7"
     },
     "enable_failed_object_recording" : true,
     "enable_restore" : false,
     "error_reason" : null,
     "failed_num" : 0,
     "failed_object_record" : {
     "result" : null,
     "list_file_key" : null,
     "error_code" : null
     },
     "group_id" : "",
     "id" : 200477729979132,
     "is_query_over" : true,
     "left_time" : 0,
     "migrate_since" : 0,
     "migrate_speed" : 71477,
     "name" : "task_name",
     "progress" : 1.0,
     "real_size" : 2223728,
     "skipped_num" : 0,
     "src_node" : {
     "bucket" : "a-test-1",
     "cloud_type" : "HuaweiCloud",
     "region" : "cn-north-7",
     "app_id" : "",
     "object_key" : ["01.png", "list.txt"],
     "list_file" : null
     },
     "start_time" : 1589267678170,
     "status" : 5,
     "successful_num" : 2,
     "task_type" : "object",
     "total_num" : 2,
     "total_size" : 2223728,
     "total_time" : 31111,
     "smn_info" : null,
     "source_cdn" : null
     }
     ```
     status表示任务执行状态，5代表成功。
     
   
   
   
   
 
