迁移工具使用方法
迁移工具支持将S3,OSS, Qiniu,文件列表等文件迁移到COS对象存储。工具只支持在linux/macos下运行,系统自带的Python版本在2.6以上。
系统依赖
工具运行平台为*nix,需要有Python2.7及以上环境,同时机器应该安装pip,gcc与python-dev。您可以使用系统自带的包管理器安装相关依赖。
在centos上,使用如下命令安装:
1 |
sudo yum install python-pip python-devel gcc gcc-c++ libxml2-devel |
在ubuntu/debian上,使用如下命令安装:
sudo apt-get install python-pip python-dev gcc gcc-c++ libxml2-devel
安装方法
推荐使用pip安装,安装pip的方法,可以参考官网或者使用apt/yum等包管理工具安装python-pip包。
pip install -U cos_migrate_tool
执行完上述命令后,可以尝试使用如下命令检测是否安装成功。
cos_migrate_tool -h
卸载方法
执行如下命令:
pip uninstall cos_migrate_tool
使用方法
在安装成功后,系统会有一个可执行命令 cos_migrate_tool,之后的迁移过程都是使用该命令。执行命令的方式如下:
cos_migrate_tool -c /path/to/your/conf
配置文件自行编写,模版参考下章内容。在配置文件中,需要配置一个工作目录,之后迁移过程中产生的临时文件都在放置在该目录,请保证目录空间足够大,如果并行执行多个迁移任务,推荐使用不同的目录。
在迁移过程中,你可以查看你设定的工作目录下面的fail_file.txt来查看迁移失败的文件列表。
配置文件
配置文件模板,common 部分配置基本配置,workspace是上述的工作目录。source部分配置数据源的信息,如果你想迁移oss到cos,该部分就是配置oss的属性。destination部分配置cos属性。
!! 配置文件请删除注释文字,即 #注释 部分,空白模板参考 链接
[common]
workspace=/tmp/tmp6 # 工作目录threads=20 # 工作线程数,如果不配置,则为10线程[source]
type=oss
accesskeyid=
accesskeysecret=
bucket=
endpoint=
[destination]
type=cosv4
region=shanghai
accesskeyid=
appid=
accesskeysecret=
bucket=sdktest
迁移OSS
[common]
workspace=/tmp/tmp6
[source]
type=oss
accesskeyid= # oss accesskey id
accesskeysecret= # ossaccesskey secret
bucket= # 要迁移的bucket名
endpoint= #oss 的endpoint,例如oss-cn-beijing.aliyuncs.com
[destination]
type=cosv4
region=shanghai # cos 的 region,如shanghai, guangzhou
accesskeyid= # cos 的 secretid
appid= # cos 的 appid
accesskeysecret= #cos 的 secretkey
bucket=sdktest # cos 的 bucket
prefix_dir=/dir21/ # cos 的目录,迁移的文件都会位于该目录下,不配置该项则迁移到根目录overwrite=true #覆盖cos上已有的同名文件,如果不需要,请删除该行
迁移qiniu
[common]
workspace=/tmp/tmp11
[source]
type=qiniu
accesskeyid= # qiniu 的 accesskeyid
accesskeysecret= # qiniu 的 accesskeysecret
bucket= # 要迁移的qiniu的bucket
domain_url= # qiniu 的下载域名
prefix=dir1 # 要迁移的目录,如果要迁移整个bucket,删除此行
[destination]
type=cosv4
region=shanghai # cos 的 region,如shanghai, guangzhou
accesskeyid= # cos 的 secretid
appid= # cos 的 appid
accesskeysecret= # cos 的 secretkey
bucket=sdktest # cos 的 bucket
prefix_dir=/dir21/ # cos 的目录,迁移的文件都会位于该目录下,不配置该项则迁移到根目录
overwrite=true # 是否覆盖上传,如果不需要,删除此行
迁移S3
[common]
workspace=/tmp/tmp21
[source]
type=s3
accesskeyid= # s3 的 accesskey id
accesskeysecret= # s3 的 accesskey secret
bucket= # s3 的要迁移的bucket名
prefix=dir1 # s3 的要迁移的目录,如果要迁移整个bucket,删除此行
[destination]
type=cosv4
region=shanghai
accesskeyid=
appid=
accesskeysecret=
bucket=
迁移列表文件
[common]
workspace=
[source]
type=url
url_list_file=/tmp/urllist.txt # 要迁移的文件url列表文件,文件每一行为一个完整的url
timeout=3 # http请求的超时时间
[destination]
type=cosv4
region=
accesskeyid=
appid=
accesskeysecret=
bucket=
迁移COSv3
[common]
workspace=
[source]
type=cosv3
accesskeyid=
appid=
accesskeysecret=
bucket= # http请求的超时时间
[destination]
type=cosv4
region=
accesskeyid=
appid=
accesskeysecret=
bucket=
COS v3 迁移到COSv4
[common]
workspace=
[source]
type=cosv3
accesskeyid=
appid=
accesskeysecret=
bucket=
[destination]
type=cosv4
region=
accesskeyid=
appid=
accesskeysecret=
bucket=
COS v4 迁移到COSv4
[common]
workspace=
[source]
type=cosv4
accesskeyid=
region=
appid=
accesskeysecret=
bucket=
prefix_dir=/foo # cos 的目录,迁移的文件都会位于该目录下,不配置该项则迁移到根目录
[destination]
type=cosv4
region=
accesskeyid=
appid=
accesskeysecret=
bucket=
常见错误与解决办法
1. pip命令不存在。使用apt installpython-pip 或者yum installpython-pip 命令安装PIP。
2. 使用pip安装迁移工具不成功。尝试执行sudo pipinstall cos_migrate_tool。
3. 提示找不到argparse,使用pip安装sudo pipinstall argparse
4. 对于一直迁移不成功的文件,可能是COS上有同名残损文件,可以尝试指定 overwrite=true 参数来覆盖。
5. 迁移前工具会先判断文件是否已经在COS上,提示文件不存在的错误的正常的
本技术文转自 “蓝叶子_架构” 博客http://dellinger.blog.51cto.com/12445009/1971596