当我们需要将一个 Bucket 的数据迁移到另外一个 Bucket 时,可以利用 OssImport 工具完成.OssImport 工具可以将本地、其它云存储的数据迁移到 OSS.

特点:

  • 支持的丰富的数据源,有本地、七牛、百度 BOS、AWS S3、Azure Blob、又拍云、腾讯云 COS、金山 KS3、HTTP、OSS 等,并可根据需要扩展;
  • 支持断点续传; 支持流量控制; 支持迁移指定时间后的文件、特定前缀的文件;
  • 支持并行数据下载、上传;
  • 支持单机模式和分布式模式,单机模式部署简单使用方便,分布式模式适合大规模数据迁移;

OssImport 有单机模式和分布式模式两种部署方式

  • 对于小于 30TB 的小规模数据迁移,单机模式即可完成.
  • 对于大规模的数据迁移,请使用分布式模式.

运行环境:

单机部署支持 Linux、Windows.
Java1.7 及以上.可以直接去 java 官网下载.

windows 环境下单机模式的数据迁移:

  1. 单机版本下载地址ossimport,下载到本地后,解压至根目录.
  2. import.bat为一键导入脚本,对于初级用户强烈建议使用一键导入.Windows 在cmd.exe(建议管理员模式)中ossimport目录下执行import.bat.
  3. 单机模式下有两个配置文件sys.propertieslocal_job.cfg,数据迁移前请按照实际需求修改任务参数.默认任务名称local_test,请不要修改.
  4. 如果之前执行过程序,会提示有是否从上次的断点处继续执行,或者重新执行同步任务.对新的数据迁移任务,或者修改了同步的源端/目的端,请选择重新执行.
  5. Windows 下任务开始后,会打开一个新的 cmd 窗口执行同步任务并显示日志,旧窗口会每隔 10 秒打一次任务状态,数据迁移期间不要关闭两个窗口.
  6. 上传过程中不建议更改数据.当 Job 完成后,如果发现有任务失败了,会提示是否重试,输入 y 重试,输入 n 则跳过退出.

配置文件:

sys.properties
OSS 不同账号之间 Bucket 的数据迁移,不需要修改 sys.properties,建议默认.

local_job.cfg

  • 单机模式 jobName 不要修改,不建议开启增量模式.
  • jobType 默认 import.
  • isIncremental 默认值 false.
  • importSince 默认为 0,表示迁移全部数据.
  • srcType=oss,从一个 bucket 迁移到另一个 bucket
  • srcAccessKey 填写数据源的 AccessKeyID.
  • srcSecretKey 填写数据源的的 AccessKeySecret.
  • srcDomain 填写从控制台获取的域名,非带 bucket 前缀的二级域名,列表请参看域名列表.
  • srcBucket 填写源 bucket 名字.
  • srcPrefix 为待同步 object 的前缀,不包括 bucket 名称,同步所有文件 srcPrefix 设置为空.
  • destAccessKey 填写目标 OSS 的 AccessKeyID.
  • destSecretKey 填写目标 OSS 的 AccessKeySecret.
  • destBucket 填写目标 OSS 的 bucket 名称,不需要以/结尾.
  • destPrefix 填写目标前缀,默认为空,直接放在目标 bucket 下.如果要将数据同步到 oss 的某个目录下,请以/结尾.
  • 在配置迁移服务时,将 srcDomain 设为带 internal 的内网域名,同时 destDomain 也设为带 internal 的内网域名,只有请求和存储费用,可以省下流量费.
  • 其他参数不建议修改.