阿里云OSS to 网易NOS 手册

本工具用于将阿里云 oss 上的对象迁移到网易 NOS

Java环境

JDK 6 及以上版本

安装

OSStoNOS-1.0.tar.gz 解压到一个目录下,如:

$ tar -zxvf OSStoNOS-1.0.tar.gz
$ cd OSStoNOS-1.0/
$ ls
conf  lib  run.sh
$ chmod +x run.sh

可以看到该目录包含如下文件和文件夹:conf lib run.sh,其中命令 chmod +x run.sh 将 run.sh 变为可执行文件。

修改配置文件

修改 conf/nos-tool.xml 文件,如下:

$ cat conf/nos-tool.xml
<nos-tool>
    <aliyunHost>oss-cn-hangzhou.aliyuncs.com</aliyunHost>
    <aliyunAccessKey>ossAccessKey</aliyunAccessKey>
    <aliyunSecretKey>ossSecretKey </aliyunSecretKey>
    <aliyunBucket>ossBucket</aliyunBucket>
    <nosHost>nos-eastchina1.126.net</nosHost>
    <nosAccessKey>nosAccesskey</nosAccessKey>
    <nosSecretKey>nosSecretkey</nosSecretKey>
    <nosBucket>nosBucket</nosBucket>
</nos-tool>

配置项解释如下:

  • aliyunHost:OSS桶的外网EndPoint,如oss-cn-hangzhou.aliyuncs.com
  • aliyunAccessKey:您在OSS上的Accesskey
  • aliyunSecretKey:您在OSS上的SecretKey
  • aliyunBucket:您的OSS桶名,迁移的源
  • nosHost:NOS桶的访问域名,如nos-eastchina1.126.net
  • nosAccessKey:您在NOS上的Accesskey
  • nosSecretKey:您在NOS上的SecretKey
  • nosBucket:您的NOS桶名,迁移的目的地

启动迁移

修改好配置项后,迁移非常简单,只需要执行./run.sh即可 (首次使用需要赋予tool.sh文件可执行权限:$ chmod +x tool.sh)

程序每迁移100个会记录一个marker,保存在当前目录的以OSS桶命名的文件中。程序如果中途挂掉,下次启动会以该marker开始进行迁移,如果删除该以OSS桶命名的文件,程序会重新从头开始迁移。

查看迁移日志

日志在log/transfer.log文件中,如下:

$ cat log/transfer.log
[INFO ]2016-09-21 20:56:58,547,[Class]Config, aliyunHost : oss-cn-hangzhou.aliyuncs.com
[INFO ]2016-09-21 20:56:58,547,[Class]Config, aliyunAccessKey : ossAccessKey
[INFO ]2016-09-21 20:56:58,548,[Class]Config, aliyunSecretKey : ossSecretKey
[INFO ]2016-09-21 20:56:58,548,[Class]Config, aliyunBucket : ossBucket
[INFO ]2016-09-21 20:56:58,548,[Class]Config, nosHost : nos-eastchina1.126.net
[INFO ]2016-09-21 20:56:58,548,[Class]Config, nosAccessKey : nosAccesskey
[INFO ]2016-09-21 20:56:58,548,[Class]Config, nosSecretKey : nosSecretkey
[INFO ]2016-09-21 20:56:58,548,[Class]Config, nosBucket : zhbtest
[INFO ]2016-09-21 20:56:59,023,[Class]NosTool, start to transfer oss bucket 'ossBucket' to nos bucket 'zhbtest'
[INFO ]2016-09-21 20:56:59,027,[Class]NosTool, transfer 1 object: haha.txt success
[INFO ]2016-09-21 20:56:59,029,[Class]NosTool, transfer 2 object: hehe.txt success
[INFO ]2016-09-21 20:56:59,040,[Class]NosTool, transfer done!

日志将配置信息打印出来,并且将上传成功与失败的对象名都打印出来了。