全部文档
当前文档

暂无内容

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

文档中心

云存储迁移至KS3示例

最近更新时间:2025-05-09 15:53:14

本文主要介绍如何通过Import工具将数据从云存储上传至KS3。目前支持将金山云KS3、阿里云OSS、腾讯云COS、华为云OBS、百度云BOS、七牛云Kodo火山云TOSAzure Blob、Amazon S3设置为迁移源。

迁移任务开始执行前,需先进行运行环境及工具的安装,详情参见:快速使用

1. 准备迁移数据

如下所示迁移ks3-uptool桶下的6个文件:

image.png

2. 下载并填写配置文件

KS3 Import工具需设置配置文件用于创建迁移任务,KS3为用户准备了配置文件模版,即***.conf文件,用户下载后在该模版文件的基础上设置相应参数即可。

配置文件示例下载

云存储

下载地址

金山云ks3

点击下载

阿里云oss

点击下载

腾讯云cos

点击下载

华为云obs

点击下载

百度云bos

点击下载

七牛云qiniu

点击下载

火山云tos

点击下载

亚马逊s3

点击下载

建议***.conf 配置文件与KS3Import工具包KS3-import-x.x.x.jar下载在同一个目录下。

配置文件模版中的一些非必填参数已设置了默认值,客户如果没有特殊需求,无需修改。云存储迁移场景需要设置的参数主要有:

  • 设置srcType值,如金山云KS3则填写值为ks3。

  • 设置srcAccessKey、srcSecretKey、srcDomain、srcBucket、srcPrefix等迁移源信息。

  • 设置dstAccessKey、dstSecretKey、dstDomain、dstBucket、dstPrefix等迁移目的信息。

配置文件参数示例
taskName=ks3_test
srcType=ks3
srcAccessKey=ks3AK
srcSecretKey=ks3SK
srcDomain=ks3-cn-beijing.ksyuncs.com
srcBucket=KS3-import
srcPrefix=
dstAccessKey=ks3AK
dstSecretKey=ks3SK
dstDomain=ks3-cn-beijing.ksyuncs.com
dstBucket=mybucket
dstPrefix=docs/
threadsNum=10
useSrcAcl=false
cannedAcl=private
storageType=STANDARD
skipDstExistFile=0
crcCheckEnabled=true

singleFileSize=104857600
partSize=104857600
uploadPartPoolSize=10

maxNetThroughput=-1
maxNetThroughputRange=
maxNetThroughputTimeRange=
useHttps=true

filterEnable=false
fileNameInclude=
fileNameExclude=
modifyTimeRange=
objectKeyRegexInclude=
objectKeyRegexExclude=

incrementalMode=false
incrementalModeInterval=900
incrementalModeCount=1

useLocalDBCheck=true
callProgressUrl=
useMultiBucketMode=
multiMode=
multiInclude=
multiExclude=
abortFailedNum=-1
serverSideEncryption=false
参数说明

参数

是否必选

说明

taskName

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

srcType

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

  • 金山云:ks3

  • 阿里云:oss

  • 腾讯云:cos

  • 华为云:obs

  • 百度云:bos

  • 七牛云:qiniu

  • 火山云:tos

  • Azure Blob:azure

  • Amazon S3:aws

srcAccessKey

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

1. KS3 ImportV2.3.0及以后版本支持匿名访问,即如果迁移源端兼容S3协议,可不填该值,表示匿名访问
2. 匿名访问时,客户需在迁移源端授予所有用户只读权限,包括GET Object、LIST Objects、GET Object ACL权限

srcSecretKey

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

1. KS3 ImportV2.3.0及以后版本支持匿名访问,即如果迁移源端兼容S3协议,可不填该值,表示匿名访问
2. 匿名访问时,客户需在迁移源端授予所有用户只读权限,包括GET Object、LIST Objects、GET Object ACL权限

srcDomain

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

srcBucket

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

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

srcPrefix

迁移源端文件的路径前缀

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

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

dstAccessKey

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

dstSecretKey

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

dstDomain

Bucket所在区域对应域名,不同区域对应的域名不同,支持填写内网/外网域名

KS3域名详情:点击查看

dstBucket

KS3 Bucket名称 (多桶迁移COPY类型可不填写,若填写则进行忽略)

dstPrefix

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

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

threadsNum

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

  • 默认值:10

  • 取值类型:正整数

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

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

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

useSrcAcl

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

  • true:是

  • false:否(默认)

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

cannedAcl

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

  • private:私密

  • publicRead:公开

storageType

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

  • STANDARD:标准存储

  • STANDARD_IA:低频存储

  • ARCHIVE:归档存储

skipDstExistFile

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

  • 取值类型:int

支持如下配置:

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

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

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

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

crcCheckEnabled

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

  • true:开启(默认)

  • false:关闭

singleFileSize

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

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

partSize

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

  • 默认值:100MB

uploadPartPoolSize

单文件分块传输并发数

  • 默认值:10

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

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

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搭配使用,两个参数必须同时设置才会生效

useHttps

是否开启HTTPS,取值如下

  • true(默认):开启HTTPS

  • false:不开启HTTPS

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时该配置生效,否则不生效

objectKeyRegexInclude

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

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

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

objectKeyRegexExclude

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

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

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

incrementalMode

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

  • true:开启

  • false:关闭(默认)

incrementalModeInterval

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

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

incrementalModeCount

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

  • 类型:整数型

  • 取值范围:1~30

  • 默认为1

useLocalDBCheck

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

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

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

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

2. 如果用户把KS3上已经迁移过的文件进行了修改或删除,推荐设置useLocalDbCheck=false。

callProgressUrl

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

useMultiBucketMode

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

  • true:开启

  • false:关闭(默认)

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

multiMode

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

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

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

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

multiInclude

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

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

multiExclude

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

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

abortFailedNum

任务中断阈值,默认值为-1,取值说明如下:

  • abortFailedNum < 0:迁移任务时,无论迁移失败多少对象,都会继续执行任务,适用于长时间、不确定源端对象能否访问,弱网环境下的业务场景。

  • abortFailedNum = 0:只要有一个对象迁移失败,将中断迁移任务,并显示任务失败,适用于较短时间迁移、测试、强一致性的业务场景。

  • abortFailedNum = X:连续第X+1个对象迁移失败后,将中断迁移任务,并显示任务失败,适用于长时间迁移,容忍网络抖动的业务场景。

abortFailedNum参数用于设置连续迁移失败的对象数量,不包含断断续续迁移失败对象,且迁移过程中存在并发,暂停迁移任务后,Import打印显示的失败对象数量可能大于abortFailedNum参数值

serverSideEncryption

上传到KS3中的数据是否采用加密(KS3托管密钥的服务端加密SSE-S3),取值如下:

  • true:加密

  • false:不加密(默认)

srcObjectFile

指定列表文件所在路径。列表文件内容格式为,每行一个Key(不包含桶名称)

1. 设置该参数后,srcPrefix配置将不生效

2. 单个Key示例:prefix1/prefix2/aaa.txt

proxyHost

代理服务器的主机地址

proxyPort

代理服务器的端口号

proxyPassword

连接代理服务器的用户名

proxyUsername

连接代理服务器使用的用户密码

clearDBRecordOnSuccess

用于设置是否在文件迁移成功后,删除在本地数据库中的对应记录,以减少数据库文件对本地磁盘空间的占用

  • true:是

  • false(默认):否

1. 设置为true后,将会删除本地数据库中成功上传的文件对应记录,保留未上传和上传失败的记录。该操作将无法通过export_ok_list命令导出成功文件列表

2. clearDBRecordOnSuccess配置为true和false启动的任务,视为两种不同的任务,各自独立记录迁移进度

3. 打开命令行

  • Windows下:快捷键Windows+R→在弹窗中输入cmd→按下回车。

  • Linux下:Ctril+Alt+T

4. 移动到KS3-import-x.x.x.jar所在目录

cd D:\KS3-import-x.x.x-dist
16167429601.png

5. 启动任务

java -jar KS3-import-x.x.x.jar -c xxx.conf start
1616743607.png

xxx.conf 配置文件如果不和KS3-import-x.x.x.jar在同一个目录下,-c 需要指明配置文件的正确路径。

Linux环境下如果想要后台执行,则用以下命令:

nohup java -jar KS3-import-1.0.0.jar -c xxx.conf start > nohup.out 2>&1 &

其他常用指令请参见文档:快速使用

其他说明

1. 日志和运行情况

KS3 Import工具执行迁移任务时会在${work_dir}下创建logs目录,该目录包含info.logwarn.logerror.log三个日志文件,如有问题可将日志文件发给KS3售前/售后咨询。

2. 目标文件名称生成规则

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

  • 检查源云存储中的对象路径和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设置为与源目录一致的名称即可。

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

纯净模式

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