概述
更新时间:2023-04-18
BosImport工具用于将其它云存储的数据迁移到BOS。 工具基于C-S结构实现,client端负责读取文件列表, 任务调度和进度统计等工作, 所有和迁移相关的参数/配置都在client端进行;迁移任务在server端完成, client端通过RPC请求通知server对哪些文件进行迁移。
BosImport工具具有以下特点:
- 支持多种迁移方式, 可扩展性良好, 支持迁移不同的源端目的端,目前支持AWS S3、阿里云OSS、腾讯云COS、七牛、小米生态云、BOS、金山云KS3等;
- 支持实时迁移并发度/压力调节,server"热升级";
- 支持迁移任务热启停,迁移进度实时显示;
- 数据传输过程不落磁盘, 减少磁盘IO, 传输过程中将大文件切块传输, 块大小可以实时配置, 最大效率地利用迁移机器的带宽资源;
- 负载均衡, client会选择没有压力的server进行迁移任务;
- 支持自定义迁移的任务列表和文件数目;
- 支持迁移任务QPS和流量限速;
- 支持多种迁移策略:
1.
FORCE_OVERWRITE
: 强制覆盖目的端文件, 可能会破坏目的端文件, 危险, 慎用, 在确定需求的前提下使用; 2.KEEP_DESTITNATION
: 如果目的端有同名文件文件存在则跳过; 3.KEEP_NEWER
: 如果目的端有同名文件存在, 且新于源端文件, 则跳过, 否则覆盖之; 如果目的端没有"同名"文件(有可能迁移时文件需要改名)存在, 则按照迁移规则直接复制到目的端
下载地址
文件名及下载地址 | MD5 |
---|---|
bosimport-1.0.2.tar | cc3fa596f917383278463aba1ebc3e65 |
运行环境
Java 1.7及以上
目录结构
├── client
│ ├── client.jar # client jar,负责读取文件列表, 任务调度和进度统计等工作
│ ├── resources # client配置文件夹
│ │ ├── client.properties # client迁移任务配置文件
│ │ └── client_logback.xml # client日志配置文件
│ ├── start_client.sh # 启动client进程
│ └── stop_client.sh # 停止client进程
├── properties_examples # 迁移任务client.properties不同源示例配置
│ ├── client.properties.bos # BOS迁移到BOS
│ ├── client.properties.bos-check # BOS到BOS校验
│ ├── client.properties.cos # COS迁移到BOS
├── client.properties.fds # 小米生态云迁移到BOS
│ ├── client.properties.http # HTTP迁移到BOS
│ ├── client.properties.oss # OOS迁移到BOS
│ ├── client.properties.qiniu # 七牛迁移到BOS
├── client.properties.ks3 # 金山云ks3迁移到BOS
│ └── client.properties.s3 # AWS S3迁移到BOS
├── server
│ ├── resources # server配置文件夹
│ │ ├── server.properties # server配置文件
│ │ └── server_logback.xml # server日志配置文件
│ ├── server.jar # server.jar,负责读取数据源并迁移到BOS
├── supervise.sh # supervisor脚本,保持server进程退出自动重启
│ ├── start_server.sh # 启动server进程
│ └── stop_server.sh # 停止server进程
├── start_migration.sh # 一键启动迁移任务,包括server和client
└── stop_migration.sh # 一键停止迁移任务,包括server和client