对象存储迁移服务 OMS对象存储迁移服务 OMS

更新时间:2021/07/08 GMT+08:00
分享

创建任务

功能介绍

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

注意事项:

  • 单个租户在过去24小时内最多可创建200个迁移任务。
  • 单个租户名下处于“等待中”状态的迁移任务达到50个时不可再创建任务。

URI

POST /v1/{project_id}/objectstorage/task

表1 参数说明

参数

是否必选

描述

project_id

项目ID。

请求消息

请求参数

表2 请求参数

参数

是否必选

参数类型

描述

src_node

JSONObject

源端节点信息,参见表3

dst_node

JSONObject

目的端节点信息,参见表6

enableKMS

boolean

是否使用KMS加密。

thread_num

int

该迁移任务使用的线程数,不能超过50个。

description

String

任务描述,不能超过255个字符,且不能包含<>()"'&等特殊字符。

smnInfo

JSONObject

当需要发送SMN消息时使用该字段,参见表7

migrate_since

long

以时间戳方式表示的迁移指定时间(单位:s),表示仅迁移在指定时间之后修改的源端待迁移对象。默认不设置迁移指定时间。

source_cdn

JSONObject

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

auto_restore

boolean

是否自动解冻归档数据,默认否。

开启后,如果遇到归档类型数据,会自动解冻再进行迁移。

bandwidth_policy

JSONArray

配置流量控制策略。数组中一个元素对应一个时段的最大带宽,最多允许5个时段,且时段不能重叠。具体参见表9

task_type

String

任务类型,为空默认设置为object。

  • list:对象列表迁移
  • object:文件/文件夹迁移
  • prefix:对象前缀迁移
  • url_list:URL列表迁移
    说明:

    当task_type为list或url_list时,表3中list_file为必选参数。当task_type为object或prefix时,表3中object_key为必选参数。

enable_failed_object_recording

Boolean

是否记录失败对象,默认开启。

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

表3 src_node数据结构

参数

是否必选

参数类型

描述

region

String

源端桶所处的区域。

ak

String

源端桶的AK(最大长度100个字符)。

说明:

表2中task_type为url_list时,ak为非必选。其他任务类型ak为必选。

sk

String

源端桶的SK(最大长度100个字符)。

说明:

表2中task_type为url_list时,sk为非必选。其他任务类型sk为必选。

list_file

JSONObject

对象列表文件配置,具体请参见表4

说明:

表2中task_type为list或url_list时,list_file为必选参数。

object_key

String/JSONObject

源端桶选择的对象名称,可以选择JSONObject格式或者String格式。

如果选择多个源端对象,则选用JSONObject格式,具体请参见表5

说明:

表2中task_type为object或prefix时,object_key为必选参数。

bucket

String

源端桶的名称。

说明:

表2中task_type为url_list时,bucket为非必选。其他任务类型bucket为必选。

app_id

String

只在其他云服务提供商的帐户存在appID这个标识时,需要填写此参数。

cloud_type

String

源端云服务提供商。

可选值有AWS、 Aliyun、Tencent、HuaweiCloud、QingCloud、KingsoftCloud、Baidu、Qiniu或URLSource(HTTP/HTTPS数据源)。默认值为Aliyun。

若不设置或为空,则使用默认值。

说明:

表2中task_type为url_list时,cloud_type必须为URLSource。

表4 list_file数据结构

参数

是否必选

参数类型

描述

obs_bucket

String

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

说明:

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

list_file_key

String

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

表5 object_key数据结构

参数

是否必选

参数类型

描述

path

String

云服务提供商的根路径,以空字符串""表示。若使用该参数,请设置为"",否则会报错。

keys

JSONArray

源端对象参数,含义取决于参数task_type。

  • 当task_type为prefix时,keys中的字符串代表待迁移对象的前缀。
  • 当task_type为object时,keys中“/”结尾的字符串代表待迁移的文件夹,非“/”结尾的字符串代表待迁移的文件。
表6 dst_node数据结构

参数

是否必选

参数类型

描述

region

String

目的端桶所处的区域。

说明:

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

ak

String

目的端桶的AK(最大长度100个字符)。

sk

String

目的端桶的SK(最大长度100个字符)。

object_key

String

目的端桶选择的对象名称(最大长度1024个字符)。

bucket

String

目的端桶的名称。

cloud_type

String

目的端云服务提供商。

默认值为华为云。若不设置或为空,则使用默认值。

表7 smnInfo数据结构

参数

是否必选

参数类型

描述

topicUrn

String

迁移任务所绑定的SMN消息主题的urn号。

说明:

topicUrn所属区域需要与Endpoint对应的区域保持一致。

language

String

当前用户所使用的管理控制台的语言。

可以选择zh-cn或者en-us。

triggerConditions

JSONArray

SMN消息的触发条件,取决于迁移任务状态。

迁移任务状态的取值范围为SUCCESS或者FAIL。

  • FAIL表示任务失败后发送SMN消息。
  • SUCCESS表示任务成功后发送SMN消息。
表8 source_cdn数据结构

参数

是否必选

参数类型

描述

protocol

String

协议类型:https或http。

domain

String

从指定域名获取对象。

authentication_type

String

鉴权方式。

  • 无需鉴权:NONE
  • Qiniu:QINIU_PRIVATE_AUTHENTICATION
  • Aliyun:

    ALIYUN_OSS_A、ALIYUN_OSS_B、ALIYUN_OSS_C

  • KingsoftCloud:KSYUN_PRIVATE_AUTHENTICATION

authentication_key

String

CDN鉴权秘钥。

  • 无需授权:无需配置此项。
  • Qiniu:无需配置此项。
  • Aliyun:根据authentication_type指定的鉴权方式配置此项。
  • KingsoftCloud:无需配置此项。
表9 bandwidth_policy数据结构

参数

是否必选

参数类型

描述

start

String

流量控制开始时间(包含),格式为“hh:mm”。例如“10:03”表示10时03分。

end

String

流量控制结束时间(包含),格式和start参数相同。

max_bandwidth

int

时段内允许的最大流量带宽,单位Byte/s,取值范围为>= 5MB/s且<=10GB/s。

响应消息

响应参数

表10 响应参数

参数

参数类型

描述

id

long

迁移任务ID。

task_name

String

迁移任务名称。

示例

请求示例

POST /v1/{project_id}/objectstorage/task

{
	"src_node": {
		"region": "source_region",
		"ak": "source_ak",
		"sk": "source_sk",
		"list_file": {
			"obs_bucket": "oms-file",
			"list_file_key": "object-keys.txt"
		},
		"bucket": "source_bucket",
		"cloud_type": XXX
	},
	"thread_num": 50,
	"enableKMS": true,
	"description": "xxx",
	"dst_node": {
		"region": "target_region",
		"ak": "target_ak",
		"sk": "target_sk",
		"object_key": "targetkey",
		"bucket": "targetbucket",
		"cloud_type": XXX
	},
	"smnInfo": {
		"topicUrn": "urn:smn:region:3cfb09080bd944d0b4cdd72ef26857bd:OMS",
		"triggerConditions": ["SUCCESS", "FAIL"],
		"language": "en-us"
	},
	"task_type": "list",
	"migrate_since": 123456789
}

POST /v1/{project_id}/objectstorage/task
{
	"src_node": {
		"region": "source_region",
		"ak": "source_ak",
		"sk": "source_sk",
		"object_key": {
			"path": "",
			"keys": ["object1", "object2"]
		},
		"bucket": "source_bucket",
		"cloud_type": "XXX"
	},
	"thread_num": 50,
	"enableKMS": true,
	"description": "xxx",
	"dst_node": {
		"region": "target_region",
		"ak": "target_ak",
		"sk": "target_sk",
		"object_key": "targetkey",
		"bucket": "targetbucket",
		"cloud_type": "XXX"
	},
	"smnInfo": {
		"topicUrn": "urn:smn:region:3cfb09080bd944d0b4cdd72ef26857bd:OMS",
		"triggerConditions": ["SUCCESS", "FAIL"],
		"language": "en-us"
	},
	"source_cdn": {
		"protocol": "https",
		"domain": "xxx.xxx.xxx",
		"authentication_type": "NONE"
	},
        "bandwidth_policy": [ 
        { 
                "start": "00:00", 
                "end": "23:59", 
                "max_bandwidth": 50000000
        }
       ]
}

或(URL列表迁移方式)

POST /v1/{project_id}/objectstorage/task

{
    "src_node": {
           "list_file": {
                  "obs_bucket": "oms-file",
                  "list_file_key": "url-list.txt"
           },
           "cloud_type": "URLSource"
    },
    "thread_num": 50,
    "enableKMS": true,
    "description": "xxx",
    "dst_node": {
           "region": "target_region",
           "ak": "target_ak",
           "sk": "target_sk",
           "object_key": "targetkey",
           "bucket": "targetbucket"
    },
    "smnInfo": {
           "topicUrn": "urn:smn:region:3cfb09080bd944d0b4cdd72ef26857bd:OMS",
           "triggerConditions": ["SUCCESS", "FAIL"],
           "language": "en-us"
    },
    "task_type": "url_list",
    "migrate_since": 123456789
}

响应示例

{
  "id": 16,
  "task_name": "task_name"
}

状态码

状态码请参见状态码

分享:

    相关文档

    相关产品