天天看点

阿里云OSS数据迁移到腾讯云COS 方法二(强烈推荐)

迁移工具使用方法

迁移工具支持将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

继续阅读