且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

阿里云oss迁移到腾讯云cos 方法二(强烈推荐)

更新时间:2022-10-02 18:13:25

迁移工具使用方法

迁移工具支持将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=     # oss accesskey 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 迁移到 COS v4

[common]
workspace=

[source]
type=cosv3
accesskeyid=
appid=
accesskeysecret=
bucket=           

[destination]
type=cosv4
region=
accesskeyid=
appid=
accesskeysecret=
bucket=

COS v4 迁移到 COS v4

[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 install python-pip 或者 yum install python-pip 命令安装PIP。

  2. 使用pip安装迁移工具不成功。尝试执行 sudo pip install cos_migrate_tool。

  3. 提示找不到argparse,使用pip安装 sudo pip install argparse

  4. 对于一直迁移不成功的文件,可能是COS上有同名残损文件,可以尝试指定 overwrite=true 参数来覆盖。

  5. 迁移前工具会先判断文件是否已经在COS上,提示文件不存在的错误的正常的










本文转自 蓝叶子Sheep 51CTO博客,原文链接:http://blog.51cto.com/dellinger/1971596,如需转载请自行联系原作者