最近更新时间:2024-10-10 20:30:03
本文主要介绍如何通过Import工具将数据从云存储上传至KS3。目前支持将金山云KS3、阿里云OSS、腾讯云COS、百度云BOS、七牛云Kodo、火山云TOS、Azure Blob、Amazon S3设置为迁移源。
迁移任务开始执行前,需先进行运行环境及工具的安装,详情参见:快速使用。
如下所示迁移KS3-import桶下的6个文件:
KS3 Import工具需设置配置文件用于创建迁移任务,KS3为用户准备了配置文件模版,即***.conf
文件,用户下载后在该模版文件的基础上设置相应参数即可。
云存储 | 下载地址 |
---|---|
金山云ks3 | |
阿里云oss | |
腾讯云cos | |
百度云bos | |
七牛云qiniu | |
亚马逊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=1000#2000#3000
maxNetThroughputTimeRange=11:50:00-15:48:50#15:49:00-15:49:50#15:50:00-15:51:50
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 | 是 | 迁移源端类型,填写示例值如下:
|
srcAccessKey | 是 | 访问源端对象存储的AccessKey ID,在对应源端云存储平台获取 |
srcSecretKey | 是 | 访问源端对象存储的Secret AccessKey,在对应源端云存储平台获取 |
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 | 是 | 并发上传的线程数,根据客户端资源实际情况进行配置。
1. 当文件较大涉及到分块时,可与uploadPartPoolSiz一起使用,总并发数=threadsNum * uploadPartPoolSize 2. 初次不建议设置过高,建议运行过程中从小到大逐渐尝试调整并发数值 3. 该参数支持热加载,即迁移过程中修改配置文件后无需重启命令即可生效 |
useSrcAcl | 否 | 是否遵循源端文件的ACL权限配置,支持如下配置:
当配置为ture,生效优先级高于cannedAcl配置。(目前七牛,Amazon S3类型的迁移暂不支持该设置,默认类型为private) |
cannedAcl | 是 | 文件权限配置,支持如下配置:
|
storageType | 是 | 文件存储类型,支持如下类型:
|
skipDstExistFile | 否 | 迁移时是否跳过目标桶内已存在的文件
支持如下配置:
|
crcCheckEnabled | 否 | 是否开启CRC64校验,取值如下:
|
singleFileSize | 否 | 分块上传文件大小阈值 ,即当文件超过指定设置大小时,文件会进行分块上传。单位为Byte
|
partSize | 否 | 分块上传块大小。即当文件大小满足分块阈值时,将按照该设置值进行分块上传,单位为Byte
|
uploadPartPoolSize | 否 | 单文件分块传输并发数
1. 可搭配 2. 该参数支持热加载,即迁移过程中修改配置文件后无需重启命令即可生效 |
maxNetThroughput | 否 | 带宽限速,单位为KB/s,取值<=0表示不限速
|
maxNetThroughputRange | 否 | 使用分时限流的带宽限速,可设置多个时间段的带宽限速值,单位为KB/s,取值<=0表示不限速
1. 该参数需搭配 2. 执行优先级:分时限速> |
maxNetThroughputTimeRange | 否 | 执行分时带宽限速的时间段,可设置多个限流时间段,限流区间要与限流时段一一对应,否则设置无效。
该参数与 |
useHttps | 否 | 是否开启HTTPS,取值如下
|
filterEnable | 否 | 过滤器开关,可根据文件名和文件修改时间过滤文件。取值如下:
|
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
filterEnable=true时该配置生效,否则不生效 |
objectKeyRegexInclude | 否 | 对象Key白名单。使用正则表达式匹配对象的Key,符合规则的文件被迁移 1. filterEnable=true时该配置生效,否则不生效 2. 正则匹配优先级大于普通匹配,比如同时配置objectKeyRegexInclude和fileNameInclude时,只有objectKeyRegexInclude生效 |
objectKeyRegexExclude | 否 | 对象Key黑名单。使用正则表达式匹配文件的Key,符合规则的文件不迁移 1. filterEnable=true时该配置生效,否则不生效 2. 正则匹配优先级大于普通匹配,比如同时配置objectKeyRegexExclude和fileNameExclude时,只有objectKeyRegexExclude生效 |
incrementalMode | 否 | 是否开启增量迁移,支持如下配置
|
incrementalModeInterval | 否 | 开启增量迁移时间间隔,单位为秒 仅在开启增量迁移模式下, |
incrementalModeCount | 否 | 增量迁移若干次数后结束迁移任务
|
useLocalDBCheck | 否 | 是否优先使用本地.db文件判断文件是否已经上传过,取值如下:
1. 每启动一个Import任务都会在本地生成一个后缀为.db的文件,记录上传信息。 2. 如果用户把KS3上已经迁移过的文件进行了修改或删除,推荐设置useLocalDbCheck=false。 |
callProgressUrl | 否 | 任务进度回调URL,可以在任务运行中和运行结束时向配置的URL上报任务进度 |
useMultiBucketMode | 否 | 是否开启多桶迁移模式:取值如下:
目前仅Azure迁移类型支持多桶迁移 |
multiMode | 否 | 设置多桶迁移模式,取值如下:
目前仅Azure迁移类型支持多桶迁移 |
multiInclude | 否 | 在多桶迁移模式下,桶名过滤白名单 (若过滤多项桶则使用逗号分割) 目前仅Azure迁移类型支持多桶迁移 |
multiExclude | 否 | 在多桶迁移模式下,桶名过滤黑名单(若过滤多项桶则使用逗号分割) 目前仅Azure迁移类型支持多桶迁移 |
abortFailedNum | 否 | 任务中断阈值,默认值为-1,取值说明如下:
abortFailedNum参数用于设置连续迁移失败的对象数量,不包含断断续续迁移失败对象,且迁移过程中存在并发,暂停迁移任务后,Import打印显示的失败对象数量可能大于abortFailedNum参数值。 |
serverSideEncryption | 否 | 上传到KS3中的数据是否采用加密(KS3托管密钥的服务端加密SSE-S3),取值如下:
|
Windows下:快捷键Windows+R
→在弹窗中输入cmd
→按下回车。
Linux下:Ctril+Alt+T
。
cd D:\KS3-import-x.x.x-dist
java -jar KS3-import-x.x.x.jar -c xxx.conf start
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 &
其他常用指令请参见文档:快速使用。
KS3 Import工具执行迁移任务时会在${work_dir}下创建logs目录,该目录包含info.log
、warn.log
、error.log
三个日志文件,如有问题可将日志文件发给KS3售前/售后咨询。
对于给定的云存储中的对象路径,执行以下步骤:
检查源云存储中的对象路径和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设置为与源目录一致的名称即可。
纯净模式