阿里云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 tool.sh将tool.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>

配置项解释如下:

  1. aliyunHost:OSS桶的访问域名,如oss-cn-hangzhou.aliyuncs.com
  2. aliyunAccessKey:您在OSS上的Accesskey
  3. aliyunSecretKey:您在OSS上的SecretKey
  4. aliyunBucket:您的OSS桶名,迁移的源
  5. nosHost:NOS桶的访问域名,如nos-eastchina1.126.net
  6. nosAccessKey:您在NOS上的Accesskey
  7. nosSecretKey:您在NOS上的SecretKey
  8. 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!

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