KS3Up-tool数据迁移工具

最近更新时间:2021-01-25 11:26:08

一、主要特性

  • 支持将本地目录内文件、url列表文件或公有云文件同步到指定KS3 Bucket上,目前支持将金山云KS3、阿里云OSS、腾讯云COS、百度云、七牛云、Azure和 AWS S3 设置为迁移源
  • 支持增量上传:a. 不在成功列表中;b. 在成功列表中,但最后更新时间不同
  • 支持大文件断点续传
  • 支持流量控制
  • 并发上传
  • 迁移进度查询
  • 海量文件迁移,部分失败情况,重新全量上传即可,已经成功上传的文件会自动跳过(勿删除log)
  • 支持选择存储类型,标准或低频 工具下载地址: http://ks3tools-online.ks3-cn-beijing.ksyun.com/tools/release/ks3up-tool-2.1.1-dist.zip

二、运行环境

用户系统需要具备jdk 1.8 环境,建议使用Oracle版本JDK。

Windows安装jdk:

方法参考:https://docs.ksyun.com/documents/5796

安装完成后,在命令提示符下,执行java –version,来确认是否安装成功

如下所示,即安装成功

KS3Up-tool数据迁移工具

Linux安装jdk:

方法参考:https://docs.ksyun.com/documents/5797

安装完成后,在终端下执行java –version,来确认是否安装成功

如下所示,即安装成功

KS3Up-tool数据迁移工具

三、使用方式

假设work_dir=/your_dir/ 配置文件中请填写绝对路径

1. 解压文件

unzip ks3up-tool-XXXXXXXX.zip -d ${work_dir}

2. 填写配置文件xxx.conf

2.1 字段说明

根据${work_dir}下解压后的sample.conf,创建用户自己新的任务配置文件xxx.conf 所有的配置参数项前后都不允许有空格。 配置文件中,字段具体含义如下。

字段 说明 是否必填
taskName 迁移任务名称
threadsNum 并发上传的线程数
(1) 配置的数目不能<=0
(2) 根据实际情况填写,更大的值可能会需要更大的运行内存,并且需要调整java运行的参数
srcType 同步源类型,不能为空
(1) 目前只支持选项:local/url/ks3/oss/cos/bos/qiniu/aws/upyun/azure
srcAccessKey 数据源的AccessKey
(1) 如果srcType是local或url,则忽略此选项
srcSecretKey 数据源的SecretKey
(1) 如果srcType是local或url,则忽略此选项
srcDomain 数据源bucket所在区域对应域名,不同区域对应的域名不同。
(1) 请参照https://docs.ksyun.com/directories/1782
(1) 如果srcType是local,则忽略此选项
srcBucket 源bucket
(1) 如果srcType是local,则忽略此选项
srcPrefix 源前缀, 匹配原前缀的文件会被迁移
(1) 如果srcType=local,则填写本地待同步目录或文件,请注意您需要填写完整的目录或文件路径(linux下路径分隔符为“/”, win下路径分隔符为“/”或“\\”),路径不能有中文字符
(2) 如果srcPrefix指定的是一个文件,则上传后的objectKey是dstPrefix + “/” + absoluteFileName
(3) 如果srcType=url,则填写url列表的绝对路径,url列表应当为一个文本文件,并逐行列出需要上传的url地址(支持http和https协议)
(4) 如果srcType=其他云厂商,会迁移srcBucket/srcPrefix/下的文件。若srcPrefix为空则迁移所有文件
dstAccessKey KS3 AccessKey
dstSecretKey KS3 SecretKey
dstDomain bucket所在区域对应域名,不同区域对应的域名不同。
(1) 请参照https://docs.ksyun.com/documents/6761
dstBucket KS3 bucket名称
dstPrefix 上传到KS3上时需要添加的前缀名(目录),当数据源是某个本地目录或公有云目录时,此处须填写与“srcPrefix”完全相同的目录名称,以确保迁移前后文件目录结构不变
maxNetThroughput 单位为KB/s,<=0 表示不设限。例:如果限速为10Mb/s,则对应的以MB为单位的限速是10*0.128MB/s=1.28MB/s,对应的maxNetThroughput=1280KB/s
cannedAcl 文件权限配置
(1)可选项private/publicread
(2) private私密
(3)publicread公开
storageType 选择上传文件存储类型
(1)可选项STANDARD/STANDARD_IA
(2) STANDARD标准
(3)STANDARD_IA低频
filterEnable 过滤器开关 true-打开 false-关闭;过滤器可根据文件名和文件修改时间过滤文件
urlRangeDownload url文件是否使用range下载 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
1、不限制开始时间#2016-01-12 00:00:00
2、不限制结束时间2005-01-12 00:00:00#
3、"filterEnable=true"时配置有效
singleFileSize 分块上传文件大小阈值,大于该值使用分块上传 ,单位为Byte
partSize 分块上传块大小 ,单位为Byte
uploadPartPoolSize 单文件分块传输并发数
maxNetThroughputRange 使用分时限流的流量配置,单位为KB/s,<=0 表示不设限,不在区间可以设置不同的流量如maxNetThroughputRange= 1000#2000#3000;限流区间要与限流时间段一一对应,否则设置无效;执行限速优先级:分时限速>maxNetThroughput>不限速
maxNetThroughputTimeRange 执行分时限流的时间段,可设置多个限流时段,如maxNetThroughputTimeRange= 11:50:00-15:48:50#15:49:00-15:49:50#15:50:00-15:51:50;限流区间要与限流时间段一一对应,否则设置无效;当时间段有重叠时以第一个时间段的限速为准
incrementalMode 增量模式下的同步;incrementalMode=true时开启增量模式,false为关闭,默认为false;如果设为true,会每间隔incrementalModeInterval(单位秒)重新扫描一次增量数据,并将增量数据迁移到KS3
incrementalModeInterval 开启增量时会每间隔incrementalModeInterval(单位秒)重新扫描一次增量数据,并将增量数据迁移到KS3;注意:可配置的最小间隔为900秒,不建议配置成大于3600秒的值,会浪费大量请求,造成额外的系统开销
incrementalModeCount 增量迁移若干次数后结束迁移任务,取值范围为1-30,默认为1
useHttps 是否开启HTTPS传输,true为开启 false为关闭,默认值为false
useSrcAcl 该参数为true时,会将源对象的ACL复制到目标对象上,且cannedAcl选项将会被忽略,注意:该参数仅当srcType=ks3时有效
skipDstExistFile 跳过已经迁移的文件,目前仅支持url模式


2.2 配置文件示例

迁移类型 配置文件 说明
从本地迁移到KS3 local.conf 适合从自建IDC迁移。
本地迁移时不需要填写srcAccessKey,srcSecretKey, srcDomain, srcBucket。
srcPrefix填写文件绝对路径。
从url迁移到KS3 url.conf 当客户为CDN客户,且数据量级较大的情况下,可以使用url方式进行迁移。
不需要填写srcAccessKey,srcSecretKey, srcDomain, srcBucket。
srcPrefix填写列表文件绝对路径,该txt文件包含所有要上传的url,每个url占据新的一行。
从百度云迁移到KS3 bos.conf srcDomain为去除桶名后的官方域名。例如:
官方域名为: mybucket.bj.bcebos.com,
srcDomain应填写: bj.bcebos.com
从腾讯云迁移到KS3 cos.conf 1. srcAccessKey内填写cos用户的SecretId
2. srcDomain填写所属区域英文名称,如 ap-nanjing
3. 桶名须保持完整,携带后方编号,如mybucet-00001
从七牛云迁移到KS3 qiniu.conf srcDomain填写目标桶的外链域名
从KS3迁移到KS3 ks3.conf
从阿里云迁移到KS3 oss.conf
从AWS S3迁移到KS3 aws.conf

3.上传示例

3.1 从本地上传

1)准备迁移数据

下面示例中, 准备迁移D:\example\local\ 目录下的六个文件 KS3Up-tool数据迁移工具

2)填写配置文件

请设置secType=local
srcAccessKey,srcSecretKey,srcDomain,srcBucket为空即可,如果不为空则会被忽略
请设置srcPrefix的值为目标文件的绝对路径并以/或\结尾

srcType=local
srcAccessKey=
srcSecretKey=
srcDomain=
srcBucket=
srcPrefix=D:/localpath/

参考配置文件:local.conf

3)打开命令行

  • Windows下:快捷键Windows+P
  • Linux下:Ctril+Alt+T

4)移动到ks3up-x.x.x.jar所在目录

cd D:\ks3up-tool-x.x.x-dist

KS3Up-tool数据迁移工具

5)启动任务

java -jar ks3up-x.x.x.jar -c xxx.conf start

KS3Up-tool数据迁移工具
注意:xxx.conf 配置文件如果不和ks3up-x.x.x.jar在同一个目录下,-c 需要指明配置文件的正确路径。

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

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

其他命令请参考:Up-tool常用指令

3.2 从url上传

1)准备迁移数据

创建列表文件xxx.txt如下图所示, 以迁移txt文件中3个url指向的文件。每个url单独一行。

KS3Up-tool数据迁移工具

2)填写配置文件

请设置secType=url
srcAccessKey,srcSecretKey,srcDomain,srcBucket为空即可,如果不为空则会被忽略

请设置srcPrefix的值为列表文件的绝对路径

srcType=local
srcAccessKey=
srcSecretKey=
srcDomain=
srcBucket=
srcPrefix=D:/list.txt

参考配置文件:url.conf

3)打开命令行

  • Windows下:快捷键Windows+P
  • Linux下:Ctril+Alt+T

4)移动到ks3up-x.x.x.jar所在目录

cd D:\ks3up-tool-x.x.x-dist

KS3Up-tool数据迁移工具

5)启动任务

java -jar ks3up-x.x.x.jar -c xxx.conf start

KS3Up-tool数据迁移工具
注意:xxx.conf 配置文件如果不和ks3up-x.x.x.jar在同一个目录下,-c 需要指明配置文件的正确路径。

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

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

其他命令请参考:Up-tool常用指令

3.3 从KS3上传

1)准备迁移数据

在本示例中,我们迁移ks3-uptool桶下的6个文件如下图所示。 KS3Up-tool数据迁移工具

2)填写配置文件

请设置 secType=ks3
srcDomain请填写对应访问方式的Endpoint
KS3Up-tool数据迁移工具 参考配置文件:ks3.conf

3)打开命令行

  • Windows下:快捷键Windows+P
  • Linux下:Ctril+Alt+T

4)移动到ks3up-x.x.x.jar所在目录

cd D:\ks3up-tool-x.x.x-dist

KS3Up-tool数据迁移工具

5)启动任务

java -jar ks3up-x.x.x.jar -c xxx.conf start

KS3Up-tool数据迁移工具
注意:xxx.conf 配置文件如果不和ks3up-x.x.x.jar在同一个目录下,-c 需要指明配置文件的正确路径。

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

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

其他命令请参考:Up-tool常用指令

3.4 从百度云上传

1)准备迁移数据

在本示例中,我们迁移ks3-uptool桶下的6个文件如下图所示。 KS3Up-tool数据迁移工具 参考配置文件:bos.conf

2)填写配置文件

请设置 secType=bos
srcDomain请填写桶概览中的官方域名 KS3Up-tool数据迁移工具 参考配置文件:bos.conf

3)打开命令行

  • Windows下:快捷键Windows+P
  • Linux下:Ctril+Alt+T

4)移动到ks3up-x.x.x.jar所在目录

cd D:\ks3up-tool-x.x.x-dist

KS3Up-tool数据迁移工具

5)启动任务

java -jar ks3up-x.x.x.jar -c xxx.conf start

KS3Up-tool数据迁移工具
注意:xxx.conf 配置文件如果不和ks3up-x.x.x.jar在同一个目录下,-c 需要指明配置文件的正确路径。

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

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

其他命令请参考:Up-tool常用指令

3.4 从腾讯云上传

1)准备迁移数据

在本示例中,我们迁移cos3-uptool桶下的6个文件如下图所示。 KS3Up-tool数据迁移工具

2)填写配置文件

请设置 secType=cos
srcDomain请填写桶概览中的所属地域英文名 KS3Up-tool数据迁移工具

srcBucket请填写完整名称,附带编号 KS3Up-tool数据迁移工具 参考配置文件:cos.conf

3)打开命令行

  • Windows下:快捷键Windows+P
  • Linux下:Ctril+Alt+T

4)移动到ks3up-x.x.x.jar所在目录

cd D:\ks3up-tool-x.x.x-dist

KS3Up-tool数据迁移工具

5)启动任务

java -jar ks3up-x.x.x.jar -c xxx.conf start

KS3Up-tool数据迁移工具
注意:xxx.conf 配置文件如果不和ks3up-x.x.x.jar在同一个目录下,-c 需要指明配置文件的正确路径。

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

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

其他命令请参考:Up-tool常用指令

3.5 从七牛云上传

1)准备迁移数据

在本示例中,我们迁移qiniu-uptool桶下的6个文件如下图所示。 KS3Up-tool数据迁移工具

2)填写配置文件

请设置 secType=qiniu
srcDomain请填写桶概览中的外链域名 KS3Up-tool数据迁移工具 参考配置文件:qiniu.conf

3)打开命令行

  • Windows下:快捷键Windows+P
  • Linux下:Ctril+Alt+T

4)移动到ks3up-x.x.x.jar所在目录

cd D:\ks3up-tool-x.x.x-dist

KS3Up-tool数据迁移工具

5)启动任务

java -jar ks3up-x.x.x.jar -c xxx.conf start

KS3Up-tool数据迁移工具
注意:xxx.conf 配置文件如果不和ks3up-x.x.x.jar在同一个目录下,-c 需要指明配置文件的正确路径。

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

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

其他命令请参考:Up-tool常用指令

3.6 从阿里云上传

1)准备迁移数据

在本示例中,我们迁移oss-uptool桶下的6个文件如下图所示。 KS3Up-tool数据迁移工具

2)填写配置文件

请设置 secType=oss
srcDomain请填写对应访问方式的Endpoint KS3Up-tool数据迁移工具 参考配置文件oss.conf

3)打开命令行

  • Windows下:快捷键Windows+P
  • Linux下:Ctril+Alt+T

4)移动到ks3up-x.x.x.jar所在目录

cd D:\ks3up-tool-x.x.x-dist

KS3Up-tool数据迁移工具

5)启动任务

java -jar ks3up-x.x.x.jar -c xxx.conf start

KS3Up-tool数据迁移工具
注意:xxx.conf 配置文件如果不和ks3up-x.x.x.jar在同一个目录下,-c 需要指明配置文件的正确路径。

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

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

其他命令请参考:Up-tool常用指令

4. 常用指令

4.1 启动任务

java -jar ks3up-x.x.x.jar -c xxx.conf start

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

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

nohup java -jar ks3up-x.x.x.jar -c xxx.conf start > nohup.out 2>&1 &

注意:srcBucket, srcPrefix, dstBucket, dstPrefix确定任务的唯一性

4.2 查询任务状态

java -jar ks3up-x.x.x.jar -c xxx.conf stat

4.3 清空任务数据

java -jar ks3up-x.x.x.jar -c xxx.conf clean

注意:

  • 若任务正在运行,则不能清空
  • 若任务未曾运行过,则会提示任务不存在
  • 使用增量上传功能,需保留任务数据

4.4 导出成功文件列表

 java -jar ks3up-x.x.x.jar -c xxx.conf export_ok_list ${export_file}

注意:只有任务退出,该操作才允许被执行

4.5 导出失败文件列表

 java -jar ks3up-x.x.x.jar -c xxx.conf export_fail_list ${export_file}

注意:只有任务退出,该操作才允许被执行

4.6 增量上传 以及 失败重传

等待当前任务退出后,重新执行“启动任务”的命令,要注意,任务的配置文件不要做修改

 java -jar ks3up-x.x.x.jar -c xxx.conf start

注意事项:

执行选项start持续运行,所需最小内存为100MB

5.日志和运行情况

会在${work_dir}下创建logs目录,执行情况可关注statistic.log,如有问题请将info.log,warn.log,error.log发给ks3售前(后)咨询

四.常见问题与注意事项

  1. 检查目标空间是否存在,dstDomain设置和目标空间对应关系是否正确
  2. 检查dstAccessKey和dstSecretKey是否正确
  3. 在windows环境下,srcPrefix目录分隔符用"/"或"\\",不能用"\"
  4. 上传时设置 filterEnable=true fileNameExclude=$ 可满足不上传前缀为$的文件,排除其他格式前缀文件同理。
  5. 每上传一个文件,都会在工具目录下生成一个后缀为.db的文件,记录上传信息。如果要重复上传此文件(文件最后修改时间都没有变),将会提示already uploaded错误信息,删除对应的.db文件后,可正常上传。建议这种情况下,用户使用SDK或者KS3Util进行覆盖上传。
  6. 客户端时间以北京时间为准,否则会导致权限错误。

金山云,开启您的云计算之旅

免费注册