全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

云存储迁移至KS3配置文件

最近更新时间:2024-07-17 19:45:09

本文主要介绍如何通过支持S3协议的其他云存储平台将数据迁移至KS3。

当数据源为云存储平台时,需设置xxx.conf配置文件(如ks3.conf),用于创建迁移任务。

参数示例

taskName=test
srcType=oss
srcAccessKey=ossAK
srcSecretKey=ossSK
srcDomain=oss-cn-beijing.aliyuncs.com
srcBucket=testbucket
srcPrefix=abc/
dstAccessKey=ks3AK
dstSecretKey=ks3SK
dstDomain=ks3-cn-beijing.ksyun.com
dstBucket=examplebucket
dstPrefix=prefix/
cannedAcl=Private
useSrcAcl=false
storageType=STANDARD
threadsNum=10
maxNetThroughput=-1
maxNetThroughputRange=
maxNetThroughputTimeRange=
skipDstExistFile=0
filterEnable=false
fileNameInclude=
fileNameExclude=
modifyTimeRange=
useHttps=true
singleFileSize=104857600
partSize=104857600
uploadPartPoolSize=5
incrementalMode=false
incrementalModeInterval=900

参数说明

参数

是否必选

说明

taskName

迁移任务名称,不填写该值时系统将随机生成字符串

srcType

迁移源端类型,填写示例值如下:

  • 金山云:ks3

  • 阿里云:oss

  • 腾讯云:cos

  • 百度云:bos

  • 七牛云:qiniu

  • 火山云:aws

  • Azure Blob:azure

  • Amazon S3:aws

srcAccessKey

访问源端对象存储的AccessKey ID,在对应源端云存储平台获取

srcSecretKey

访问源端对象存储的Secret AccessKey,在对应源端云存储平台获取

srcDomain

源端对象存储的访问域名,在对应源端云存储平台获取

srcBucket

源端存储桶的名称,在对应源端云存储平台获取

目前仅Azure支持多桶迁移,当设置Azure多桶迁移时该参数值不需要填写,填写则提示警告并忽略

srcPrefix

迁移源端文件的路径前缀

1. 若srcPrefix为空则表示迁移所有文件

2. KS3 Import V2.1.9及之后的版本支持单文件的迁移,无论srcPrefix是否以斜杠(/)结尾,KS3 Import均会自动判断被迁移的是目录或者单文件,并进行上传

3. KS3 Import V2.1.9之前版本仅支持目录迁移,不支持单文件迁移,srcPrefix必须以斜杠(/)结尾

dstAccessKey

目的端对象存储的AccessKey ID,即KS3 AccessKey

dstSecretKey

目的端对象存储的AccessKey Secret,即KS3 SecretKey

dstDomain

目的端对象存储的访问域名,KS3域名详情:点击查看

dstBucket

目的端存储桶的名称

目前仅Azure支持多桶迁移,当设置Azure多桶迁移并multiMode=COPY时,该参数值不需要填写,填写则忽略

dstPrefix

目标前缀,迁移至KS3后的对象将自动添加此前缀

目标文件名称生成规则:点击查看

cannedAcl

目标文件ACL权限配置,支持如下配置:

  • private:私密

  • publicRead:公开读

useSrcAcl

是否遵循源端文件的ACL权限配置,支持如下配置:

  • true:是

  • false:否(默认)

当配置为ture,生效优先级高于cannedAcl配置。(目前七牛,Amazon S3类型的迁移暂不支持该设置,默认类型为private)

storageType

文件存储类型,支持如下类型:

  • STANDARD:标准存储

  • STANDARD_IA:低频存储

  • ARCHIVE:归档存储

threadsNum

并发上传的线程数,根据客户端资源实际情况进行配置。

  • 默认值:10

  • 取值类型:正整数

1. 当文件较大涉及到分块时,可与uploadPartPoolSiz一起使用,总并发数=threadsNum * uploadPartPoolSize

2. 初次不建议设置过高,建议运行过程中从小到大逐渐尝试调整并发数值

3. 该参数支持热加载,即迁移过程中修改配置文件后无需重启命令即可生效

skipDstExistFile

迁移时是否跳过目标桶内已存在的文件

  • 取值类型:int

支持如下配置:

  • 0:优先判断LastModified,源文件大则覆盖上传;其次判断Size,不一致则覆盖上传

  • 1:条件覆盖,当lastmodified、Size、Type其中存在一个不同,则覆盖上传

  • 2:全覆盖,存在同名文件均覆盖上传

  • 3:不覆盖,存在同名文件均跳过

maxNetThroughput

带宽限速,单位为KB/s,取值<=0表示不限速

  • 默认值:-1

  • 示例:当限速为10Mb/s时,则换算为以KB/s为单位的值:(10/8)*1024=1280KB/s

maxNetThroughputRange

使用分时限流的带宽限速,可设置多个时间段的带宽限速值,单位为KB/s,取值<=0表示不限速

  • 示例:maxNetThroughputRange= 1000#2000#3000。限流区间要与限流时间段一一对应,否则设置无效

1. 该参数需搭配maxNetThroughputTimeRange使用,两个参数必须同时设置才会生效

2. 执行优先级:分时限速>maxNetThroughput>不限速,不在限流时间段内的限速值为maxNetThroughput的取值

maxNetThroughputTimeRange

执行分时带宽限速的时间段,可设置多个限流时间段,限流区间要与限流时段一一对应,否则设置无效。

  • 示例:如maxNetThroughputTimeRange= 11:50:00-15:48:50#15:49:00-15:49:50#15:50:00-15:51:50

  • 时间重叠执行规则:当时间段存在重叠时以第一个时间段的限速为准

参数与maxNetThroughputRange搭配使用,两个参数必须同时设置才会生效

singleFileSize

分块上传文件大小阈值 ,即当文件超过指定设置大小时,文件会进行分块上传。单位为Byte

  • 默认值:100MB,即大于100MB的文件将使用分块上传

partSize

分块上传块大小。即当文件大小满足分块阈值时,将按照该设置值进行分块上传,单位为Byte

  • 默认值:100MB

uploadPartPoolSize

单文件分块传输并发数

  • 默认值:10

1. 可搭配uploadPartPoolSize参数值一起使用,总并发数=threadsNum * uploadPartPoolSize

2. 该参数支持热加载,即迁移过程中修改配置文件后无需重启命令即可生效

filterEnable

过滤器开关,可根据文件名和文件修改时间过滤文件。取值如下:

  • true:打开

  • false:关闭(默认)

fileNameInclude

文件名称白名单。可用于设置指定包含某字符的文件名称进行迁移,多个用英文逗号分隔

filterEnable=true时该配置生效,否则不生效

fileNameExclude

文件名称黑名单。可用于设置指定包含某字符的文件名称不进行迁移,多个用英文逗号分隔

filterEnable=true时该配置生效,否则不生效

modifyTimeRange

文件修改时间范围,以#分割,时间格式为yyyy-MM-dd HH:mm:ss,如2005-01-12 00:00:00#2016-01-12 00:00:00

  • 示例:

    a. 不限制开始时间:#2016-01-12 00:00:00

    b. 不限制结束时间:2005-01-12 00:00:00#

filterEnable=true时该配置生效,否则不生效

useHttps

是否开启HTTPS传输,支持如下配置:

  • true:开启

  • false:关闭(默认)

incrementalMode

是否开启增量迁移,支持如下配置

  • true:开启

  • false:关闭(默认)

incrementalModeInterval

开启增量迁移时间间隔,单位为秒

仅在开启增量迁移模式下,incrementalModeInterval参数才有效,可配置的最小时间间隔为900秒,系统不建议配置超过3600秒,会浪费大量请求,造成系统额外开销

incrementalModeCount

增量迁移若干次数后结束迁移任务

  • 类型:整数型

  • 取值范围:1~30

  • 默认为1

useLocalDBCheck

是否优先使用本地.db文件判断文件是否已经上传过,取值如下:

  • true:使用本地.db文件判断文件是否已经上传过(默认)

  • false:通过拉取目标桶内文件信息判断文件是否已经上传过

每启动一个Import任务都会在本地生成一个后缀为.db的文件,记录上传信息。

callProgressUrl

任务进度回调URL,可以在任务运行中和运行结束时向配置的URL上报任务进度

useMultiBucketMode

是否开启多桶迁移模式:取值如下:

  • true:开启

  • false:关闭(默认)

目前仅Azure迁移类型支持多桶迁移

multiMode

设置多桶迁移模式,取值如下:

  • COPY:复制源桶名称和文件到目标Region,目标Region没有同名桶则新建桶,有同名桶则直接上传文件

  • LEVEL:在目标桶中,根据源桶名创建对应目录(前缀),名录名为源桶名

目前仅Azure迁移类型支持多桶迁移

multiInclude

在多桶迁移模式下,桶名过滤白名单 (若过滤多项桶则使用逗号分割)

目前仅Azure迁移类型支持多桶迁移

multiExclude

在多桶迁移模式下,桶名过滤黑名单(若过滤多项桶则使用逗号分割)

目前仅Azure迁移类型支持多桶迁移

crcCheckEnabled

是否开启CRC64校验,取值如下:

  • true:开启(默认)

  • false:关闭

objectKeyRegexInclude

对象Key白名单。使用正则表达式匹配对象的Key,符合规则的文件被迁移

1. filterEnable=true时该配置生效,否则不生效

2. 正则匹配优先级大于普通匹配,比如同时配置objectKeyRegexInclude和fileNameInclude时,只有objectKeyRegexInclude生效

objectKeyRegexExclude

对象Key黑名单。使用正则表达式匹配文件的Key,符合规则的文件不迁移

1. filterEnable=true时该配置生效,否则不生效

2. 正则匹配优先级大于普通匹配,比如同时配置objectKeyRegexExclude和fileNameExclude时,只有objectKeyRegexExclude生效

配置文件示例下载

云存储

下载地址

金山云ks3

点击下载

阿里云oss

点击下载

腾讯云cos

点击下载

百度云bos

点击下载

七牛云qiniu

点击下载

迁移流程示例:点击查看

目标文件名称生成规则

对于给定的云存储中的对象路径,执行以下步骤:

  • 检查源云存储中的对象路径和srcPrefix,srcPrefix必须是源云存储中的一个目录路径。

  • 确定相对文件名,即从云存储中的对象路径中去除srcPrefix的部分。

根据dstPrefix的值生成objectKey:

  • 如果dstPrefix为空,objectKey将是相对文件名。

  • 如果dstPrefix不为空,那么objectKey将 dstPrefix 和相对文件名的组合,即objectKey=dstPrefix+相对文件名。

示例:

假设有以下参数值:

srcPrefix=files/
dstPrefix=upload/
srcType=ks3

以上示例中,比如云存储中的某个对象路径为files/data1.txt,将生成以下objectKey:

upload/data1.txt

这是因为相对文件名为data1.txt(从源云存储中的对象路径中去除srcPrefix部分得到),然后使用dstPrefix和相对文件名的组合作为objectKey。

如需保持与原目录一致,只需将dstPrefix设置为与源目录一致的名称即可。

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈