• 沒有找到結果。

历史API_对象存储迁移服务 OMS_API参考_华为云

N/A
N/A
Protected

Academic year: 2022

Share "历史API_对象存储迁移服务 OMS_API参考_华为云"

Copied!
145
0
0

加載中.... (立即查看全文)

全文

(1)

API 参考

文档版本 17

发布日期 2021-05-28

(2)

版权所有 © 华为技术有限公司 2021。 保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。

商标声明

和其他华为商标均为华为技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声 明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

(3)

目 录

1 使用前必读... 1

1.1 概述... 1

1.2 调用说明...1

1.3 终端节点...1

1.4 基本概念...2

2 API 概览... 4

3 如何调用 API...5

3.1 构造请求...5

3.2 认证鉴权...9

3.3 返回结果... 10

4 应用示例...12

4.1 示例 1:创建迁移任务... 12

4.2 示例 2:启动迁移任务... 15

4.3 示例 3:暂停并删除迁移任务... 17

5 API v2(推荐)...20

5.1 查询 API 版本信息... 20

5.1.1 查询 API 版本信息列表...20

5.1.2 查询指定 API 版本信息...23

5.2 迁移任务管理...25

5.2.1 查询迁移任务列表... 25

5.2.2 查询指定 ID 的任务详情...36

5.2.3 创建迁移任务... 46

5.2.4 暂停迁移任务... 56

5.2.5 启动迁移任务... 58

5.2.6 删除迁移任务... 60

5.2.7 更新任务带宽策略... 62

5.3 同步任务... 65

5.3.1 创建同步事件... 65

6 历史 API... 68

6.1 查询 API 版本... 68

6.2 创建任务... 70

(4)

6.3 删除任务... 78

6.4 启动任务... 79

6.5 停止任务... 80

6.6 修改流量控制策略... 81

6.7 查询某个租户的所有任务... 83

6.8 查询某个租户的任务总数... 90

6.9 查询指定 ID 的任务...92

6.10 查询租户配额数据... 97

7 附录... 99

7.1 状态码...99

7.2 错误码... 100

7.3 迁移失败原因... 131

7.4 历史错误码... 133

7.5 获取项目 ID... 137

A 修订记录... 139

(5)

1 使用前必读

1.1 概述

欢迎使用对象存储迁移服务(Object Storage Migration Service)。对象存储迁移服 务是一种线上数据迁移服务,帮助用户把对象存储数据从其他云服务商的公有云轻 松、平滑地迁移到华为云。

您可以使用本文档提供的API对对象存储迁移服务进行相关操作,如创建、删除、查询 迁移任务等。支持的全部操作请参见API概览。

在调用对象存储迁移服务API之前,请确保已经充分了解对象存储迁移服务相关概念,

详细信息请参见产品介绍。

1.2 调用说明

对象存储迁移服务提供了REST(Representational State Transfer)风格API,支持您 通过HTTPS请求调用,调用方法请参见如何调用API。

1.3 终端节点

终端节点(Endpoint)即调用API的请求地址,不同服务不同区域的终端节点不同,您 可以从地区和终端节点中查询服务的终端节点。

对象存储迁移服务的终端节点如下表所示,请您根据业务需要选择对应区域的终端节 点。

1-1 对象存储迁移服务的终端节点

区域名称 区域 终端节点

华北-北京一 cn-north-1 oms.cn-north-1.myhuaweicloud.com 华北-北京四 cn-north-4 oms.cn-north-4.myhuaweicloud.com 华东-上海二 cn-east-2 oms.cn-east-2.myhuaweicloud.com

(6)

区域名称 区域 终端节点

华东-上海一 cn-east-3 oms.cn-east-3.myhuaweicloud.com 华南-广州 cn-south-1 oms.cn-south-1.myhuaweicloud.com 中国-香港 ap-

southeast-1 oms.ap-southeast-1.myhuaweicloud.com 亚太-新加坡 ap-

southeast-3 oms.ap-southeast-3.myhuaweicloud.com

1.4 基本概念

● 账号

用户注册时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以 重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建 议您不要直接使用账号进行日常管理工作,而是创建用户并使用他们进行日常管 理工作。

● 用户

由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问 密钥)。

在我的凭证下,您可以查看账号ID和IAM用户ID。通常在调用API的鉴权过程中,

您需要用到账号、用户和密码等信息。

● 区域(Region)

从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象 存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属 Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只 承载同一类业务或只面向特定租户提供业务服务的专用Region。

详情请参见区域和可用区。

● 可用区(AZ,Availability Zone)

一个可用区是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上 再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高 速光纤相连,以满足用户跨AZ构建高可用性系统的需求。

● 项目

区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计 算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您 账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默 认的项目中创建子项目,并在子项目中创建资源,然后以子项目为单位进行授 权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。

(7)

1-1 项目隔离模型

同样在我的凭证下,您可以查看项目ID。

● 企业项目

企业项目是项目的升级版,针对企业不同项目间资源的分组和管理,是逻辑隔 离。企业项目中可以包含多个区域的资源,且项目中的资源可以迁入迁出。

关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理用户指 南》。

(8)

2 API 概览

对象存储迁移服务提供了版本查询接口和任务管理接口,如表2-1所示。

2-1 对象存储迁移服务接口列表

类型 说明

查询API版本信息列

表 查询对象存储迁移服务的API版本信息。

查询指定API版本信

息 查询对象存储迁移服务指定API版本信息。

查询迁移任务列表 查询用户账户下的所有任务信息。

查询指定ID的任务

详情 查询指定ID的任务详情。

创建迁移任务 创建迁移任务。

启动迁移任务 迁移任务暂停或失败后,调用该接口以启动任务。

暂停迁移任务 当任务正在运行中时,调用该接口停止任务。

删除迁移任务 根据迁移任务ID,删除迁移任务。

更新任务带宽策略 当迁移任务未执行完成时,修改迁移任务的流量控制策略。

(9)

3 如何调用 API

3.1 构造请求

本节介绍REST API请求的组成,并以调用IAM服务的获取用户Token说明如何调用 API,该API获取用户的Token,Token可以用于调用其他API时鉴权。

您还可以通过这个视频教程了解如何构造请求调用API:https://

bbs.huaweicloud.com/videos/102987。

请求 URI

请求URI由如下部分组成:

{URI-scheme}://{Endpoint}/{resource-path}?{query-string}

尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传 递它,所以在此单独强调。

3-1 URI 中的参数说明

参数 描述

URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。

Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的 Endpoint不同,您可以从地区和终端节点获取。

例如IAM服务在“华北-北京一”区域的Endpoint为“iam.cn- north-1.myhuaweicloud.com”。

resource-path 资源路径,也即API访问路径。从具体API的URI模块获取,例如

“获取用户Token”API的resource-path为“/v3/auth/tokens”。

query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数 前面需要带一个“?”,形式为“参数名=参数取值”,例如

“limit=10”,表示查询不超过10条数据。

(10)

例如您需要获取IAM在“华北-北京一”区域的Token,则需使用“华北-北京一”区域 的Endpoint(iam.cn-north-1.myhuaweicloud.com),并在获取用户Token的URI部 分找到resource-path(/v3/auth/tokens),拼接起来如下所示。

https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens

3-1 URI 示意图

说明

为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。

这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分 省略。

请求方法

HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。

3-2 HTTP 方法

方法 说明

GET 请求服务器返回指定资源。

PUT 请求服务器更新指定资源。

POST 请求服务器新增资源或执行特殊操作。

DELETE 请求服务器删除指定资源,如删除对象等。

HEAD 请求服务器资源头部。

PATCH 请求服务器更新资源的部分内容。

当资源不存在的时候,PATCH可能会去创建一个新的资 源。

在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为:

POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens

请求消息头

附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请 求头“Content-Type”,请求鉴权信息等。

详细的公共请求消息头字段请参见表3-3。

(11)

3-3 公共请求消息头

名称 描述 是否必选 示例

Host 请求的服务器信

息,从服务API的 URL中获取。值为 hostname[:port]。

端口缺省时使用默 认的端口,https的 默认端口为443。

使用AK/SK认 证时该字段必 选。

code.test.com or

code.test.com:443

Content-Type 消息体的类型(格 式)。推荐用户使 用默认值application/json,

有其他取值时会在 具体接口中专门说 明。

是 application/json

Content-

Length 请求body长度,单

位为Byte。 否 3495

X-Project-Id project id,项目编 号。请参考获取项 目ID章节获取项目 编号。

如果是专属云 场景采用AK/SK认证方 式的接口请求 或者多project 场景采用AK/SK认证的 接口请求,则 该字段必选。

e9993fc787d94b6c886cb aa340f9c0f4

X-Auth-Token 用户Token。

用户Token也就是调 用获取用户Token接 口的响应值,该接 口是唯一不需要认 证的接口。

请求响应成功后在 响应消息头

(Headers)中包含 的“X-Subject- Token”的值即为 Token值。

使用Token认 证时该字段必 选。

注:以下仅为Token示例片 段

MIIPAgYJKoZIhvcNAQcCo ...ggg1BBIINPXsidG9rZ

说明

API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中 添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。

AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。

(12)

对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添 加消息头后的请求如下所示。

POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json

请求消息体(可选)

该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中 Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中 文,则中文字符必须为UTF-8编码。

每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消 息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根 据具体接口而定。

对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说 明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中

username

为用户名,

domainname

为用户所属的账号名称,

********

为用户登录密 码,

xxxxxxxxxxxxxxxxxx

为project的名称,如“cn-north-1”,您可以从地区和终端 节点获取。

说明

scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可 以设置Token的作用域为某个账号下所有资源或账号的某个project下的资源,详细定义请参见获 取用户Token。

POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json

{ "auth": { "identity": { "methods": [ "password"

],

"password": { "user": {

"name": "username", "password": "********", "domain": {

"name": "domainname"

} } } }, "scope": { "project": {

"name": "xxxxxxxxxxxxxxxxxx"

} } } }

到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编 写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x- subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认 证调用其他API。

(13)

3.2 认证鉴权

调用接口有如下两种认证方式,您可以选择其中一种进行认证鉴权。

● Token认证:通过Token认证通用请求。

● AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。

推荐使用AK/SK认证,其安全性比Token认证要高。

Token 认证

说明

Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。

Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。

Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得 操作API的权限。

Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的 Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择 project,如下所示。

{ "auth": { "identity": { "methods": [ "password"

],

"password": { "user": {

"name": "username", "password": "********", "domain": {

"name": "domainname"

} } } }, "scope": { "project": {

"name": "xxxxxxxx"

} } } }

获取Token后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,

其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token:

ABCDEFJ....”加到请求消息头即可,如下所示。

POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json

X-Auth-Token: ABCDEFJ....

您还可以通过这个视频教程了解如何使用Token认证:https://

bbs.huaweicloud.com/videos/101333。

(14)

AK/SK 认证

说明

AK/SK签名认证方式仅支持消息体大小12MB以内,12MB以上的请求请使用Token认证。

AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而 通过身份认证。

● AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密 钥ID和私有访问密钥一起使用,对请求进行加密签名。

● SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签 名,可标识发送方,并防止请求被修改。

使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门 的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。

说明

签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。

3.3 返回结果

状态码

请求发送以后,您会收到响应,包含状态码、响应消息头和消息体。

状态码是一组从1xx到5xx的数字代码,状态码表示了请求响应的状态,完整的状态码 列表请参见状态码。

对于获取用户Token接口,如果调用后返回状态码为“201”,则表示请求成功。

响应消息头

对应请求消息头,响应同样也有消息头,如“Content-type”。

对于获取用户Token接口,返回如图3-2所示的消息头,其中“x-subject-token”就是 需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。

(15)

3-2 获取用户 Token 响应消息头

响应消息体(可选)

该部分可选。响应消息体通常以结构化格式(如JSON或XML)返回,与响应消息头中 Content-Type对应,传递除响应消息头之外的内容。

对于获取用户Token接口,返回如下消息体。为篇幅起见,这里只展示部分内容。

{ "token": {

"expires_at": "2019-02-13T06:52:13.855000Z", "methods": [

"password"

],

"catalog": [ {

"endpoints": [ {

"region_id": "az-01", ...

当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所 示。

{ "error_msg": "The format of message is error", "error_code": "AS.0001"

}

其中,error_code表示错误码,error_msg表示错误描述信息。

(16)

4 应用示例

4.1 示例 1:创建迁移任务

场景描述

本章节指导用户通过API创建迁移任务。API的调用方法请参见如何调用API。

创建迁移任务时,支持的任务类型有:URL列表迁移、对象前缀迁移、对象列表迁 移、文件/文件夹迁移。本节我们以创建文件/文件夹迁移任务为例,介绍如何创建迁移 任务。

涉及接口

● 获取IAM用户Token(使用密码):用于鉴权认证。

● 创建迁移任务:通过源端和目的端的AK和SK创建迁移任务。

● 查询指定ID的任务详情:根据迁移任务ID查询任务详情,确定迁移任务是否创建

成功。

前提条件

● 已获取源端云服务平台的AK/SK。

● 已获取目的端AK/SK,参见创建访问秘钥(AK/SK)。

● 已获取IAM和OMS的Endpoint,参见地区和终端节点。

● 已获取源端桶的区域。

● 已创建目的端桶,参见创建桶。

● 已获取目的端桶的区域,参见查看桶的信息。

● 已获取项目ID,参见获取项目ID。

操作步骤

步骤1 获取IAM用户Token。

● 接口相关信息

URI格式:POST /v3/auth/tokens

(17)

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

● 请求示例

POST: https://{iam_endpoint}/v3/auth/tokens

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

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 详情请参见创建迁移任务。

● 请求示例

POST: https://{oms_endpoint}/v2/{project_id}/tasks

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

Header:

Content-Type: application/json X-Auth-Token: "Token"

Body:

{ "src_node" : {

"region" : "source_bucket_region", "ak" : "sorce_ak",

"sk" : "sorce_sk",

"bucket" : "source_bucket", "cloud_type" : "cloud_type", "object_key" : ["01.png", "list.txt"]

},

"enable_kms" : false, "description" : "", "dst_node" : {

"region" : "destination_bucket_region", "ak" : "destination_ak",

"sk" : "destination_sk", "bucket" : "destination_bucket"

},

(18)

"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的任务详情。

● 请求示例

GET: https://{oms_endpoint}/v2/{project_id}/tasks/{task_id}

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

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_kms" : false,

"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,

(19)

"total_size" : 2223728, "total_time" : 31111, "smn_info" : null, "source_cdn" : null }

status表示任务执行状态,5代表成功。

----结束

4.2 示例 2:启动迁移任务

场景描述

本章节指导用户通过API启动迁移任务。API的调用方法请参见如何调用API。

启动迁移任务前需要获取Token,启动迁移任务后,需要查询任务状态详情,失败或暂 停中的任务才能被启动。

涉及接口

● 获取IAM用户Token(使用密码):用于鉴权认证。

● 启动迁移任务:通过源端和目的端的AK和SK启动失败或者暂停的迁移任务。

● 查询指定ID的任务详情:根据迁移任务ID查询任务详情,确定迁移任务是否启动

成功。

操作步骤

步骤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": "0215ef11e49d4743be23dd97a1561e91"

} }

(20)

} }

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

X-Subject-Token:MIIDkgYJKoZIhvcNAQcCoIIDgzCCA38CAQExDTALBglghkgBZQMEAgEwgXXXXX...

步骤2 调用启动任务接口启动迁移任务。

● 接口相关信息

URI格式:POST /v2/{project_id}/tasks/{task_id}/start 详情请参见启动迁移任务。

● 请求示例

POST: https://{oms_endpoint}/v2/{project_id}/tasks/{task_id}/start

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

Header:

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

Body:

{ "dst_ak" : "destination_ak", "dst_sk" : "destination_sk", "src_ak" : "source_ak", "src_sk" : "source_sk", "migrate_failed_object" : false }

响应200表示调用成功。

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

● 接口相关信息 URI格式:

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

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

● 请求示例

GET: https://{oms_endpoint}/v2/{project_id}/tasks/{task_id}

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

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_kms" : false,

"enable_restore" : false, "error_reason" : null, "failed_num" : 0, "failed_object_record" : { "result" : null, "list_file_key" : null, "error_code" : null },

(21)

"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表示任务执行状态,2代表正在执行,5表示执行成功。

----结束

4.3 示例 3:暂停并删除迁移任务

场景描述

本章节指导用户通过API暂停并删除迁移任务。API的调用方法请参见如何调用API。

删除迁移任务前,需要获取Token并暂停迁移任务,暂停迁移任务后,需查询任务状态 详情,当迁移任务暂停后,才能删除迁移任务。

涉及接口

● 获取IAM用户Token(使用密码):用于鉴权认证。

● 暂停迁移任务:根据迁移任务ID暂停迁移任务。

● 查询指定ID的任务详情:根据迁移任务ID查询任务详情,确定迁移任务是否暂停

成功。

● 删除迁移任务:根据迁移任务ID删除迁移任务。

操作步骤

步骤1 获取IAM用户Token。

● 接口相关信息

URI格式:POST /v3/auth/tokens

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

● 请求示例

POST: https://{iam_endpoint}/v3/auth/tokens

(22)

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

Body:

{ "auth": { "identity": { "methods": [ "password"

],

"password": { "user": {

"name": "testname", "domain": {

"name": "testname"

},

"password": "Password"

} } }, "scope": { "project": {

"id": "0215ef11e49d4743be23dd97a1561e91"

} } } }

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

X-Subject-Token:MIIDkgYJKoZIhvcNAQcCoIIDgzCCA38CAQExDTALBglghkgBZQMEAgEwgXXXXX...

步骤2 调用暂停任务接口暂停迁移任务。

● 接口相关信息

URI格式:POST /v2/{project_id}/tasks/{task_id}/stop 详情请参见暂停迁移任务。

● 请求示例

POST: https://{oms_endpoint}/v2/{project_id}/tasks/{task_id}/stop

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

Header:

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

响应200表示调用成功。

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

● 接口相关信息 URI格式:

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

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

● 请求示例

GET: https://{oms_endpoint}/v2/{project_id}/tasks/{task_id}

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

Header:

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

● 响应示例

{ "bandwidth_policy" : [], "complete_size" : 2223728,

(23)

"description" : "", "dst_node" : {

"bucket" : "api-test-outline", "region" : "cn-north-7"

},

"enable_failed_object_recording" : true, "enable_kms" : false,

"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" : 3,

"successful_num" : 2, "task_type" : "object", "total_num" : 2, "total_size" : 2223728, "total_time" : 31111, "smn_info" : null, "source_cdn" : null }

status表示任务执行状态,3代表暂停。

步骤4 调用删除任务接口删除迁移任务。

● 接口相关信息

URI格式:DELETE /v2/{project_id}/tasks/{task_id}

详情请参见删除迁移任务。

● 请求示例

DELETE: https://{oms_endpoint}/v2/{project_id}/tasks/{task_id}

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

Header:

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

响应200表示删除成功。

----结束

(24)

5 API v2(推荐)

5.1 查询 API 版本信息

5.1.1 查询 API 版本信息列表

功能介绍

查询对象存储迁移服务的API版本信息。

调试

您可以在API Explorer中调试该接口。

URI

GET /

请求参数

响应参数

状态码: 200

5-1 响应 Body 参数

参数 参数类型 描述

versions Array of Version objects

版本信息列表。

(25)

5-2 Version

参数 参数类型 描述

id String 版本号,例如v1。

links Array of Link

objects 链接地址信息。

status String 版本状态。

取值“CURRENT”,表示该版本为主推版本。

取值"SUPPORTED",表示支持该版本。

取值“DEPRECATED”,表示为废弃版本,存在 后续删除的可能。

枚举值:

● CURRENT

● DEPRECATED

● SUPPORTED updated String 版本更新时间。

格式为“yyyy-mm-ddThh:mm:ssZ”。

其中,T指某个时间的开始;Z指UTC时间。

最小长度:0 最大长度:32

5-3 Link

参数 参数类型 描述

href String 链接地址。

rel String 取值为“self”,表示href为本地链接。

状态码: 403

5-4 响应 Body 参数

参数 参数类型 描述

error_msg String 错误信息。

error_code String 错误码。

请求示例

查询支持的API版本列表。

(26)

GET https://{endpoint}/

{ "versions" : [ { "links" : [ { "rel" : "self",

"href" : "https://oms.cn-north-1.myhuaweicloud.com/v1/"

} ], "id" : "v1",

"updated" : "2020-01-01T12:00:00Z", "status" : "SUPPORTED"

}, { "links" : [ { "rel" : "self",

"href" : "https://oms.cn-north-1.myhuaweicloud.com/v2/"

} ], "id" : "v1",

"updated" : "2020-01-01T12:00:00Z", "status" : "SUPPORTED"

} ] }

响应示例

状态码: 200 OK

{ "versions" : [ { "links" : [ { "rel" : "self",

"href" : "https://oms.cn-north-1.myhuaweicloud.com/v1/"

} ], "id" : "v1",

"updated" : "2020-01-01T12:00:00Z", "status" : "SUPPORTED"

}, { "links" : [ { "rel" : "self",

"href" : "https://oms.cn-north-1.myhuaweicloud.com/v2/"

} ], "id" : "v1",

"updated" : "2020-01-01T12:00:00Z", "status" : "SUPPORTED"

} ] }

状态码

状态码 描述

200 OK 403 Forbidden

错误码

请参见错误码。

(27)

5.1.2 查询指定 API 版本信息

功能介绍

查询对象存储迁移服务指定API版本信息。

调试

您可以在API Explorer中调试该接口。

URI

GET /{version}

5-5 路径参数

参数 是否必选 参数类型 描述

version 是 String 版本信息。

最小长度:1 最大长度:10

请求参数

响应参数

状态码: 200

5-6 响应 Body 参数

参数 参数类型 描述

id String 版本号,例如v1。

links Array of Link

objects 链接地址信息。

status String 版本状态。

取值“CURRENT”,表示该版本为主推版本。

取值"SUPPORTED",表示支持该版本。

取值“DEPRECATED”,表示为废弃版本,存在 后续删除的可能。

枚举值:

● CURRENT

● DEPRECATED

● SUPPORTED

(28)

参数 参数类型 描述

updated String 版本更新时间。

格式为“yyyy-mm-ddThh:mm:ssZ”。

其中,T指某个时间的开始;Z指UTC时间。

最小长度:0 最大长度:32

5-7 Link

参数 参数类型 描述

href String 链接地址。

rel String 取值为“self”,表示href为本地链接。

状态码: 403

5-8 响应 Body 参数

参数 参数类型 描述

error_msg String 错误信息。

error_code String 错误码。

请求示例

获取版本信息。

GET https://{endpoint}/v2 { "version" : {

"links" : [ { "rel" : "self",

"href" : "https://oms.cn-north-1.myhuaweicloud.com/v1/"

} ], "id" : "v2",

"updated" : "2020-04-01T12:00:00Z", "status" : "SUPPORTED"

}}

响应示例

状态码: 200 版本信息。

{ "links" : [ {

(29)

"rel" : "self",

"href" : "https://oms.cn-north-1.myhuaweicloud.com/v1/"

} ], "id" : "v2",

"updated" : "2020-04-01T12:00:00Z", "status" : "SUPPORTED"

}

状态码

状态码 描述

200 版本信息。

403 Forbidden

错误码

请参见错误码。

5.2 迁移任务管理

5.2.1 查询迁移任务列表

功能介绍

查询用户账户下的所有任务信息。

调试

您可以在API Explorer中调试该接口。

URI

GET /v2/{project_id}/tasks

5-9 路径参数

参数 是否必选 参数类型 描述

project_id 是 String 项目ID 最小长度:1 最大长度:1024

(30)

5-10 Query 参数

参数 是否必选 参数类型 描述

group_id 否 String 迁移任务组group_id 最小长度:1

最大长度:100

limit 否 Integer 查询返回迁移任务列表当前页面

的数量,默认查询10条。 最多 返回100条迁移任务信息。

最小值:1 最大值:100 缺省值:10

offset 否 Integer 起始的任务序号,默认为0。 取

值大于等于0,取值为0时从第 一条开始查询。

最小值:0 最大值:10000 缺省值:0

status 否 Integer 迁移任务状态(无该参数时代表

查询所有状态的任务): 1:等 待调度 2:正在执行 3:停止 4:失败 5:成功

最小值:1 最大值:5

请求参数

5-11 请求 Header 参数

参数 是否必选 参数类型 描述

X-Auth-Token 是 String IAM 鉴权 Token 最小长度:1 最大长度:16384

响应参数

状态码: 200

(31)

5-12 响应 Body 参数

参数 参数类型 描述

tasks Array of TaskResp objects

查询的任务详情

count Long 满足查询条件的任务总数

最小值:0

最大值:9223372036854775807

5-13 TaskResp

参数 参数类型 描述

bandwidth_po

licy Array of BandwidthPo licyDto objects

流量控制策略,每个任务最多可设置5条限速策 略。

complete_size Long 任务迁移完成大小(Byte)。

最小值:0

最大值:9223372036854775807 description String 任务描述,没有设置时为空字符串。

最小长度:0 最大长度:255 dst_node DstNodeResp

object 目的端节点信息 enable_failed_

object_recordi ng

Boolean 是否记录失败对象。开启后,如果有迁移失败对 象,会在目的端存储失败对象信息。

enable_kms Boolean 存储入OBS时是否使用KMS加密。

enable_restor

e Boolean 是否自动解冻归档数据,(由于对象存储解冻需

要源端存储等待一定时间,开启自动解冻会对迁 移速度有较大影响,建议先完成归档存储数据解 冻后再启动迁移)。 开启后,如果遇到归档类型 数据,会自动解冻再进行迁移;如果遇到归档类 型的对象直接跳过相应对象,系统默认对象迁移 失败并记录相关信息到失败对象列表中。

error_reason ErrorReasonR

esp object 任务失败原因,非失败状态时该字段为空字符 串。

failed_num Long 迁移失败对象数量。

最小值:0

最大值:9223372036854775807

(32)

参数 参数类型 描述 failed_object_

record FailedObject RecordDto object

失败对象列表记录结果,记录成功时提供失败对 象列表存放链接,记录失败时显示失败原因。

group_id String 迁移任务组ID,当任务由迁移任务组创建时会包 含迁移任务组的id信息。

最小长度:0 最大长度:36

id Long 任务ID。

最小值:0

最大值:999999999999999

is_query_over Boolean 迁移任务是否完成源端对象统计数据扫描。

left_time Long 任务剩余时间(毫秒)。

最小值:0

最大值:9223372036854775807

migrate_since Long 迁移指定时间(时间戳,毫秒),表示仅迁移在 指定时间之后修改的源端待迁移对象。默认为0,

表示不设置迁移指定时间。

最小值:0

最大值:9223372036854775807 migrate_spee

d Long 任务迁移速度(Byte/s)。

最小值:0

最大值:9223372036854775807

name String 任务名称。

最小长度:0 最大长度:10240

progress Double 任务进度,例如:0.522代表任务进度为52.2%,

1代表任务进度为100%。

最小值:0 最大值:1

real_size Long 实际迁移对象总大小(Byte),忽略对象的大小 不会统计在内。

最小值:0

最大值:9223372036854775807

skipped_num Long 迁移忽略对象数(存在以下两种情况会自动跳 过:1.源端对象最后修改时间在迁移指定时间 前;2.目的端已有该对象。)

最小值:0

最大值:9223372036854775807

(33)

参数 参数类型 描述 src_node SrcNodeResp

object 源端节点信息

start_time Long 任务启动时间(Unix时间戳,毫秒)。

最小值:0

最大值:9223372036854775807

status Integer 任务状态。 1:等待调度 2:正在执行 3:停止 4:失败 5:成功

最小值:1 最大值:5 successful_nu

m Long 迁移成功对象数量。

最小值:0

最大值:9223372036854775807

task_type String 任务类型,为空默认设置为object。 list:对象列 表迁移 object:文件/文件夹迁移 prefix:对象前 缀迁移 url_list: url对象列表

缺省值:object 枚举值:

● list

● object

● prefix

● url_list

group_type String 分组类型 NORMAL_TASK:一般迁移任务 SYNC_TASK:同步任务所属迁移任务 GROUP_TASK:任务组所属迁移任务 缺省值:NORMAL_TASK

枚举值:

● NORMAL_TASK

● SYNC_TASK

● GROUP_TASK total_num Long 迁移任务对象总数量。

最小值:0

最大值:9223372036854775807 total_size Long 任务迁移总大小(Byte)。

最小值:0

最大值:9223372036854775807

(34)

参数 参数类型 描述

total_time Long 任务总耗时(毫秒)。

最小值:0

最大值:9223372036854775807 smn_info SmnInfo

object SMN消息通知结果 source_cdn SourceCdnRe

sp object 指定是否启用CDN迁移支持。启用CDN迁移支持 后,迁移时将从CDN域名获取源端对象。若包含 此字段则为支持,否则为不支持。

success_recor d_error_reaso n

String 迁移成功对象列表记录失败错误码,记录成功时 为空

最小长度:0 最大长度:255 skip_record_er

ror_reason String 迁移忽略对象列表记录失败错误码,记录记录成功 时为空。

最小长度:0 最大长度:255

5-14 BandwidthPolicyDto

参数 参数类型 描述

end String 流量控制结束时间(包含),格式为

“hh:mm”。例如“12:03”表示12时03分。

max_bandwid

th Long 时段内允许的最大流量带宽,单位Byte/s,取值

范围为>= 1048576Byte/s(相当于1MB/s)且

<=209715200Byte/s(相当于200MB/s)。

最小值:1048576 最大值:209715200

start String 流量控制开始时间(包含),格式为

“hh:mm”。例如“12:03”表示12时03分。

5-15 DstNodeResp

参数 参数类型 描述

bucket String 目的端桶的名称。

最大长度:1024

(35)

参数 参数类型 描述

region String 目的端桶所处的区域。

请与Endpoint对应的区域保持一致。

最小长度:0 最大长度:100

save_prefix String 目的端桶内路径前缀(拼接在对象key前面,组成 新的key,拼接后不能超过1024个字符)。

最小长度:0 最大长度:1024

5-16 ErrorReasonResp

参数 参数类型 描述

error_code String 迁移失败的错误码。

最小长度:0 最大长度:10 error_msg String 迁移失败的原因。

最小长度:0 最大长度:1024

5-17 FailedObjectRecordDto

参数 参数类型 描述

result Boolean 是否支持失败对象重传。

list_file_key String 失败对象列表文件路径。

最小长度:0 最大长度:1024

error_code String 失败对象列表上传失败的错误码。

最小长度:0 最大长度:10

(36)

5-18 SrcNodeResp

参数 参数类型 描述

bucket String 源端桶的名称。

最小长度:0 最大长度:1024 cloud_type String 源端云服务提供商。

可选值有AWS、Azure、Aliyun、Tencent、

HuaweiCloud、QingCloud、KingsoftCloud、

Baidu、Qiniu、URLSource或者UCloud。默认值 为Aliyun。

枚举值:

● AWS

● Azure

● Aliyun

● Tencent

● HuaweiCloud

● QingCloud

● KingsoftCloud

● Baidu

● Qiniu

● URLSource

● UCloud

region String 源端桶所处的区域。

最小长度:0 最大长度:100

app_id String 当源端为腾讯云时,会返回此参数。

最小长度:0 最大长度:255 object_key Array of

strings 任务类型为对象迁移任务时,表示待迁移对象名 称; 任务类型为前缀迁移任务时,表示待迁移前 缀。

list_file ListFile object 列表文件配置,当task_type为list或url_list时,

list_file为必选参数。

(37)

5-19 ListFile

参数 参数类型 描述

list_file_key String 对象列表文件或URL列表文件对象名。

最小长度:1 最大长度:1024

obs_bucket String 存放对象列表文件的OBS桶名。

请确保与目的端桶处于同一区域,否则将导致任 务创建失败。

最小长度:0 最大长度:1024

5-20 SmnInfo

参数 参数类型 描述

notify_result Boolean 记录迁移任务执行完毕后SMN消息是否发送成 功。

notify_error_

message String 记录SMN消息发送失败原因的错误码(迁移任务 成功时为空)。

最小长度:0 最大长度:1024

topic_name String SMN Topic的名称(SMN消息发送成功时为 空)。

最小长度:0 最大长度:5120

5-21 SourceCdnResp

参数 参数类型 描述

domain String 从指定域名获取对象。

最小长度:0 最大长度:1024

protocol String 协议类型,支持http和https协议。

枚举值:

● http

● https

(38)

参数 参数类型 描述 authenticatio

n_type String 鉴权类型: NONE,

QINIU_PRIVATE_AUTHENTICATION, ALIYUN_OSS_A, ALIYUN_OSS_B, ALIYUN_OSS_C,

KSYUN_PRIVATE_AUTHENTICATION, AZURE_SAS_TOKEN

枚举值:

● NONE

● QINIU_PRIVATE_AUTHENTICATION

● ALIYUN_OSS_A

● ALIYUN_OSS_B

● ALIYUN_OSS_C

● KSYUN_PRIVATE_AUTHENTICATION

● AZURE_SAS_TOKEN

状态码: 400

5-22 响应 Body 参数

参数 参数类型 描述

error_msg String 错误信息。

error_code String 错误码。

请求示例

查询2c0689c860ad4728a497c91ec0844383项目下10条失败的任务

GET https://{endpoint}/v2/2c0689c860ad4728a497c91ec0844383/tasks?offset=0&limit=10&status=4 { "count" : 2,

"tasks" : [ {

"bandwidth_policy" : [ { "start" : "00:00", "end" : "15:00",

"max_bandwidth" : 5242880 } ],

"complete_size" : 102608606, "description" : "Aliyun_API_Sonar", "dst_node" : {

"region" : "cn-north-1", "bucket" : "oms-sonar-north1"

},

"enable_failed_object_recording" : true, "enable_kms" : false,

"enable_restore" : false, "error_reason" : {

"error_code" : "TRF.0001",

(39)

"error_msg" : "System error. Click the restart button to try to start the migration task."

},

"failed_num" : 7, "failed_object_record" : { "result" : true,

"list_file_key" : "oms/failed_object_lists/oms-north1-20200407164335723_487.failed_list.txt"

},

"group_id" : "null", "id" : 191297407830872, "is_query_over" : true, "left_time" : 0, "migrate_since" : 0, "migrate_speed" : 780973,

"name" : "oms-north1-20200407164335723_487", "progress" : 0.998,

"real_size" : 102465246, "skipped_num" : 99, "src_node" : {

"region" : "cn-beijing", "bucket" : "api-auto-test1", "object_key" : [ "10000" ], "list_file" : "",

"cloud_type" : "Aliyun"

},

"start_time" : 1586249019394, "status" : 4,

"successful_num" : 19895, "task_type" : "prefix", "thread_num" : 50, "total_num" : 20001, "total_size" : 102629086, "total_time" : 131202, "smn_info" : "smn", "source_cdn" : "source_cdn"

}, {

"bandwidth_policy" : [ { "start" : "00:00", "end" : "15:00",

"max_bandwidth" : 5242880 } ],

"complete_size" : 102608606, "description" : "Aliyun_API_Sonar", "dst_node" : {

"region" : "cn-north-1", "bucket" : "oms-sonar-north1"

},

"enable_failed_object_recording" : true, "enable_kms" : false,

"enable_restore" : false, "error_reason" : {

"error_code" : "TRF.0001",

"error_msg" : "System error. Click the restart button to try to start the migration task."

},

"failed_num" : 7, "failed_object_record" : { "result" : true,

"list_file_key" : "oms/failed_object_lists/oms-north1-20200407164335723_487.failed_list.txt"

},

"group_id" : "null", "id" : 191297407830872, "is_query_over" : true, "left_time" : 0, "migrate_since" : 0, "migrate_speed" : 780973,

"name" : "oms-north1-20200407164335723_487", "progress" : 0.998,

"real_size" : 102465246, "skipped_num" : 99, "src_node" : {

(40)

"region" : "cn-beijing", "bucket" : "bucket_name", "object_key" : [ "10000" ], "list_file" : "",

"cloud_type" : "Aliyun"

},

"start_time" : 1586249019394, "status" : 4,

"successful_num" : 19895, "task_type" : "prefix", "thread_num" : 50, "total_num" : 20001, "total_size" : 102629086, "total_time" : 131202, "smn_info" : "smn", "source_cdn" : "source_cdn"

} ] }

响应示例

状态码

状态码 描述

200 OK

400 Bad Request

错误码

请参见错误码。

5.2.2 查询指定 ID 的任务详情

功能介绍

查询指定ID的任务详情。

调试

您可以在API Explorer中调试该接口。

URI

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

(41)

5-23 路径参数

参数 是否必选 参数类型 描述

project_id 是 String 项目ID 最小长度:1 最大长度:1024

task_id 是 Long 任务ID

最小值:0

最大值:999999999999999

请求参数

5-24 请求 Header 参数

参数 是否必选 参数类型 描述

X-Auth-Token 是 String IAM 鉴权 Token 最小长度:1 最大长度:16384

响应参数

状态码: 200

5-25 响应 Body 参数

参数 参数类型 描述

bandwidth_po

licy Array of BandwidthPo licyDto objects

流量控制策略,每个任务最多可设置5条限速策 略。

complete_size Long 任务迁移完成大小(Byte)。

最小值:0

最大值:9223372036854775807 description String 任务描述,没有设置时为空字符串。

最小长度:0 最大长度:255 dst_node DstNodeResp

object 目的端节点信息

(42)

参数 参数类型 描述 enable_failed_

object_recordi ng

Boolean 是否记录失败对象。开启后,如果有迁移失败对 象,会在目的端存储失败对象信息。

enable_kms Boolean 存储入OBS时是否使用KMS加密。

enable_restor

e Boolean 是否自动解冻归档数据,(由于对象存储解冻需

要源端存储等待一定时间,开启自动解冻会对迁 移速度有较大影响,建议先完成归档存储数据解 冻后再启动迁移)。 开启后,如果遇到归档类型 数据,会自动解冻再进行迁移;如果遇到归档类 型的对象直接跳过相应对象,系统默认对象迁移 失败并记录相关信息到失败对象列表中。

error_reason ErrorReasonR

esp object 任务失败原因,非失败状态时该字段为空字符 串。

failed_num Long 迁移失败对象数量。

最小值:0

最大值:9223372036854775807 failed_object_

record FailedObject RecordDto object

失败对象列表记录结果,记录成功时提供失败对 象列表存放链接,记录失败时显示失败原因。

group_id String 迁移任务组ID,当任务由迁移任务组创建时会包 含迁移任务组的id信息。

最小长度:0 最大长度:36

id Long 任务ID。

最小值:0

最大值:999999999999999

is_query_over Boolean 迁移任务是否完成源端对象统计数据扫描。

left_time Long 任务剩余时间(毫秒)。

最小值:0

最大值:9223372036854775807

migrate_since Long 迁移指定时间(时间戳,毫秒),表示仅迁移在 指定时间之后修改的源端待迁移对象。默认为0,

表示不设置迁移指定时间。

最小值:0

最大值:9223372036854775807 migrate_spee

d Long 任务迁移速度(Byte/s)。

最小值:0

最大值:9223372036854775807

(43)

参数 参数类型 描述

name String 任务名称。

最小长度:0 最大长度:10240

progress Double 任务进度,例如:0.522代表任务进度为52.2%,

1代表任务进度为100%。

最小值:0 最大值:1

real_size Long 实际迁移对象总大小(Byte),忽略对象的大小 不会统计在内。

最小值:0

最大值:9223372036854775807

skipped_num Long 迁移忽略对象数(存在以下两种情况会自动跳 过:1.源端对象最后修改时间在迁移指定时间 前;2.目的端已有该对象。)

最小值:0

最大值:9223372036854775807 src_node SrcNodeResp

object 源端节点信息

start_time Long 任务启动时间(Unix时间戳,毫秒)。

最小值:0

最大值:9223372036854775807

status Integer 任务状态。 1:等待调度 2:正在执行 3:停止 4:失败 5:成功

最小值:1 最大值:5 successful_nu

m Long 迁移成功对象数量。

最小值:0

最大值:9223372036854775807

task_type String 任务类型,为空默认设置为object。 list:对象列 表迁移 object:文件/文件夹迁移 prefix:对象前 缀迁移 url_list: url对象列表

缺省值:object 枚举值:

● list

● object

● prefix

● url_list

(44)

参数 参数类型 描述

group_type String 分组类型 NORMAL_TASK:一般迁移任务 SYNC_TASK:同步任务所属迁移任务 GROUP_TASK:任务组所属迁移任务 缺省值:NORMAL_TASK

枚举值:

● NORMAL_TASK

● SYNC_TASK

● GROUP_TASK total_num Long 迁移任务对象总数量。

最小值:0

最大值:9223372036854775807 total_size Long 任务迁移总大小(Byte)。

最小值:0

最大值:9223372036854775807 total_time Long 任务总耗时(毫秒)。

最小值:0

最大值:9223372036854775807 smn_info SmnInfo

object SMN消息通知结果 source_cdn SourceCdnRe

sp object 指定是否启用CDN迁移支持。启用CDN迁移支持 后,迁移时将从CDN域名获取源端对象。若包含 此字段则为支持,否则为不支持。

success_recor d_error_reaso n

String 迁移成功对象列表记录失败错误码,记录成功时 为空

最小长度:0 最大长度:255 skip_record_er

ror_reason String 迁移忽略对象列表记录失败错误码,记录记录成功 时为空。

最小长度:0 最大长度:255

5-26 BandwidthPolicyDto

参数 参数类型 描述

end String 流量控制结束时间(包含),格式为

“hh:mm”。例如“12:03”表示12时03分。

(45)

参数 参数类型 描述 max_bandwid

th Long 时段内允许的最大流量带宽,单位Byte/s,取值

范围为>= 1048576Byte/s(相当于1MB/s)且

<=209715200Byte/s(相当于200MB/s)。

最小值:1048576 最大值:209715200

start String 流量控制开始时间(包含),格式为

“hh:mm”。例如“12:03”表示12时03分。

5-27 DstNodeResp

参数 参数类型 描述

bucket String 目的端桶的名称。

最大长度:1024 region String 目的端桶所处的区域。

请与Endpoint对应的区域保持一致。

最小长度:0 最大长度:100

save_prefix String 目的端桶内路径前缀(拼接在对象key前面,组成 新的key,拼接后不能超过1024个字符)。

最小长度:0 最大长度:1024

5-28 ErrorReasonResp

参数 参数类型 描述

error_code String 迁移失败的错误码。

最小长度:0 最大长度:10 error_msg String 迁移失败的原因。

最小长度:0 最大长度:1024

5-29 FailedObjectRecordDto

参数 参数类型 描述

result Boolean 是否支持失败对象重传。

(46)

参数 参数类型 描述

list_file_key String 失败对象列表文件路径。

最小长度:0 最大长度:1024

error_code String 失败对象列表上传失败的错误码。

最小长度:0 最大长度:10

5-30 SrcNodeResp

参数 参数类型 描述

bucket String 源端桶的名称。

最小长度:0 最大长度:1024 cloud_type String 源端云服务提供商。

可选值有AWS、Azure、Aliyun、Tencent、

HuaweiCloud、QingCloud、KingsoftCloud、

Baidu、Qiniu、URLSource或者UCloud。默认值 为Aliyun。

枚举值:

● AWS

● Azure

● Aliyun

● Tencent

● HuaweiCloud

● QingCloud

● KingsoftCloud

● Baidu

● Qiniu

● URLSource

● UCloud

region String 源端桶所处的区域。

最小长度:0 最大长度:100

app_id String 当源端为腾讯云时,会返回此参数。

最小长度:0 最大长度:255

(47)

参数 参数类型 描述 object_key Array of

strings 任务类型为对象迁移任务时,表示待迁移对象名 称; 任务类型为前缀迁移任务时,表示待迁移前 缀。

list_file ListFile object 列表文件配置,当task_type为list或url_list时,

list_file为必选参数。

5-31 ListFile

参数 参数类型 描述

list_file_key String 对象列表文件或URL列表文件对象名。

最小长度:1 最大长度:1024

obs_bucket String 存放对象列表文件的OBS桶名。

请确保与目的端桶处于同一区域,否则将导致任 务创建失败。

最小长度:0 最大长度:1024

5-32 SmnInfo

参数 参数类型 描述

notify_result Boolean 记录迁移任务执行完毕后SMN消息是否发送成 功。

notify_error_

message String 记录SMN消息发送失败原因的错误码(迁移任务 成功时为空)。

最小长度:0 最大长度:1024

topic_name String SMN Topic的名称(SMN消息发送成功时为 空)。

最小长度:0 最大长度:5120

(48)

5-33 SourceCdnResp

参数 参数类型 描述

domain String 从指定域名获取对象。

最小长度:0 最大长度:1024

protocol String 协议类型,支持http和https协议。

枚举值:

● http

● https authenticatio

n_type String 鉴权类型: NONE,

QINIU_PRIVATE_AUTHENTICATION, ALIYUN_OSS_A, ALIYUN_OSS_B, ALIYUN_OSS_C,

KSYUN_PRIVATE_AUTHENTICATION, AZURE_SAS_TOKEN

枚举值:

● NONE

● QINIU_PRIVATE_AUTHENTICATION

● ALIYUN_OSS_A

● ALIYUN_OSS_B

● ALIYUN_OSS_C

● KSYUN_PRIVATE_AUTHENTICATION

● AZURE_SAS_TOKEN

状态码: 404

5-34 响应 Body 参数

参数 参数类型 描述

error_msg String 错误信息。

error_code String 错误码。

请求示例

查询2c0689c860ad4728a497c91ec0844383项目下的191297407830872任务的详情

GET https://{endpoint}/v2/2c0689c860ad4728a497c91ec0844383/tasks/191297407830872 { "bandwidth_policy" : [ {

"start" : "00:00", "end" : "15:00",

(49)

"max_bandwidth" : 5242880 } ],

"complete_size" : 102608606, "description" : "Aliyun_API_Sonar", "dst_node" : {

"region" : "cn-north-1", "bucket" : "oms-sonar-north1"

}, "enable_failed_object_recording" : true, "enable_kms" : false,

"enable_restore" : false, "error_reason" : {

"error_code" : "TRF.0001",

"error_msg" : "System error. Click the restart button to try to start the migration task."

}, "failed_num" : 7, "failed_object_record" : { "result" : true,

"list_file_key" : "oms/failed_object_lists/api-auto-test1-oms-sonar- north1-20200407164335723_487.failed_list.txt"

}, "group_id" : "null", "id" : 191297407830872, "is_query_over" : true, "left_time" : 0, "migrate_since" : 0, "migrate_speed" : 780973,

"name" : "api-auto-test1-oms-sonar-north1-20200407164335723_487", "progress" : 0.998,

"real_size" : 102465246, "skipped_num" : 99, "src_node" : {

"region" : "cn-beijing", "bucket" : "api-auto-test1", "object_key" : [ "10000" ], "list_file" : "",

"cloud_type" : "Aliyun"

}, "start_time" : 1586249019394, "status" : 4,

"successful_num" : 19895, "task_type" : "prefix", "thread_num" : 50, "total_num" : 20001, "total_size" : 102629086, "total_time" : 131202, "smn_info" : "smn", "source_cdn" : "source_cdn"

}

响应示例

状态码

状态码 描述

200 OK

404 Not Found

(50)

错误码

请参见错误码。

5.2.3 创建迁移任务

功能介绍

创建迁移任务,创建成功后,任务会被自动启动,不需要额外调用启动任务命令。

接口约束

● 单个租户在过去24小时内最多可创建1500个迁移任务。

● 单个租户名下处于“等待中”状态的迁移任务达到1500个时不可再创建任务。

调试

您可以在API Explorer中调试该接口。

URI

POST /v2/{project_id}/tasks

5-35 路径参数

参数 是否必选 参数类型 描述

project_id 是 String 项目ID。

最小长度:1 最大长度:1024

请求参数

5-36 请求 Header 参数

参数 是否必选 参数类型 描述

X-Auth-Token 是 String IAM鉴权Token。

最小长度:1 最大长度:16384

數據

表 3-3 公共请求消息头 名称 描述 是否必选 示例 Host 请求的服务器信 息,从服务API的 URL中获取。值为 hostname[:port]。 端口缺省时使用默 认的端口,https的 默认端口为443。 否 使用AK/SK认 证时该字段必选。 code.test.comor code.test.com:443 Content-Type 消息体的类型(格 式)。推荐用户使 用默认值 application/json, 有其他取值时会在 具体接口中专门说 明。 是 application/json
表 5-2 Version
表 5-10 Query 参数
表 5-12 响应 Body 参数 参数 参数类型 描述 tasks Array of TaskResp objects 查询的任务详情 count Long 满足查询条件的任务总数 最小值:0 最大值:9223372036854775807 表 5-13 TaskResp 参数 参数类型 描述 bandwidth_po licy Array of BandwidthPo licyDto objects 流量控制策略,每个任务最多可设置5条限速策略。
+7

參考文獻

相關文件

This theorem does not establish the existence of a consis- tent estimator sequence since, with the true value θ 0 unknown, the data do not tell us which root to choose so as to obtain

 The purpose of using information technology is to facilitate language learning, not to replace teachers. Does e-learning replace

//if it does not connect it starts an access point with the specified name //here &#34;AutoConnectAP&#34;. //and goes into a blocking loop awaiting

The packed comparison instructions compare the destination (second) operand to the source (first) oper- and to test for equality or greater than.. These instructions compare eight

• The SHL (shift left) instruction performs a logical left shift on the destination operand, filling the lowest bit with

12 Disney California Adventure at Disneyland, Anaheim, California 9.9 13 Disneyland Park at Disneyland Paris, Marne-la-Vallée, France 9.8 14 Universal's Islands of Adventure

Attractions, no matter physical or cultural, are the main pull factor of tourist flow. Without these attractions, there would be no need for other tourist

Pursuant to the service agreement made between the Permanent Secretary for Education Incorporated (“Grantor”) and the Grantee in respect of each approved programme funded by the