×

帮助中心

常见问题
域名类
•  域名介绍
•  注册/续费
•  域名管理
•  域名过户
•  域名转移
•  增值服务
•  域名交易
•  通用网址
•  产品更新日志
邮局类
•  产品简介
•  产品管理
•  邮件客户端
•  邮箱用户操作指南
•  邮箱管理员操作指南
•  产品使用手册
•  代理商控制台操作指南
•  产品更新日志
云虚机类
•  购买与升级
•  FTP
•  主机管理
•  技术问题
•  数据库
•  产品更新日志
ECS云主机类
•  产品更新日志
会员类
•  会员注册
•  信息修改
•  忘记密码
•  账户实名认证
•  产品更新日志
财务类
•  后付费计费
•  在线支付
•  线下汇款
•  发票问题
•  汇款单招领
•  退款问题
•  充值业务
•  产品更新日志
ICP备案
•  备案问题快速咨询通道
•  备案介绍
•  备案账号
•  ICP备案前准备内容
•  ICP备案流程
•  ICP备案操作指导
•  ICP备案信息查看
•  备案合规核查要求
•  资料下载
•  公安联网备案与经营性备案
•  各地管局备案通知
•  常见问题
服务类
•  ICP备案
•  小新服务
•  产品更新日志
网站定制类
•  网站定制问题
•  网站访问问题
新办公类
•  常见问题
•  操作手册下载
云推送
•  云推送常见问题
速成建站
•  网站访问问题
•  网站使用问题
•  产品更新日志
SSL证书
•  SSL证书常见问题
•  产品更新日志
新网云产品类
•  新网云WEB应用防火墙
•  新网云DDoS防护
•  云数据库
•  云产品运维
•  内容分发网络CDN
•  对象存储 S3
•  网络
资料下载
新手上路

US3SYNC 迁移工具

  • 作者:
  • 文章来源:新网
  • 点击数:0
  • 更新时间:2024-03-27 10:52:13

US3SYNC 是一款将不同源的数据同步到 S3 的迁移工具。通过将 US3SYNC 部署在本地或者云主机中,可以便捷地从本地或者其他云环境中将数据迁移到 S3 存储空间。US3SYNC工具可以创建两种模式的任务:

普通模式: 普通同步任务可以将源端某个指定前缀或文件夹的文件批量的同步到US3上。

fetch模式: fetch模式的同步任务是通过POST请求(描述需要同步的文件URL和目的位置)将文件同步到指定的位置上。可以指明文件同步成功和失败后的回调接口,US3SYNC会在同步任务完成后,发送相应的通知。


普通任务工作原理

图中master节点与worker节点功能:


master节点:

单点部署,负责迁移任务的管理。其主要逻辑是从源端拉取文件列表,然后将需要迁移的文件派发给worker进程迁移。


worker节点:

支持节点扩展,负责迁移文件。其主要逻辑是从源端下载文件,然后将文件上传到目的端。


master节点与worker节点可以部署在同一台机器,也可以部署在多台机器上,用户可以根据需要自行扩展worker节点,下面分别介绍:

部署在同一台机器:

master节点和worker节点通过启动时配置的内部通信监听地址进行通信。用户需要确保配置给worker节点的路径是单独的路径,不可与master路径以及其他worker路径重复。

部署在不同机器:

master节点和worker节点通过启动时配置的内部通信监听地址进行通信,确保该地址在worker机器上可以访问。用户需要确保配置给worker节点的路径是单独的路径,不可与master路径以及其他worker路径重复。



Fetch任务工作原理

Fetch类型的任务跟普通任务工作原理大致类似,不同的是同步任务的源端需要发送POST请求来指定,而不是根据配置的源端的位置自动拉取。


POST请求语法

POST /fetch/ HTTP 1.1Authorization: AuthContent-Type:application/jsonCopy


请求头部
ErrorSuccess请求头部

Authorization为必选项,content-type, date等都是可选项

例如: Authorization: UCloud xxxx-xxxx-xxxx-xxxx-xxxx:xxxxxxxxxxxxx 计算方法伪码如下:

method := "POST" md5 := xxxxxxcontentType := xxxxxxdate := xxxxxprivateKey = xxxxx-xxxx-xxxxx-xxxxpublicKey = xxxx-xxxx-xxxx-xxxxstrToSign = method + "\n" + md5 + "\n" + contentType + "\n" + date + "\n" signature = HmacSHA1(strToSign, privateKey) signature = Base64(signature) Authorization: "UCloud " + publicKey + ":" + signatureCopyErrorSuccess


请求内容
名称描述类型必选
Url源站资源地址,需要url encodeString
Key桶内文件路径,不需要url encodeString
Bucket桶名String
JobIdFetch任务IdString
SuccessCallbackUrl回源拉取成功的回调地址String
FailureCallbackUrl回源拉取失败的回调地址String

此处的JobId可以在界面中获取


返回内容
名称描述类型
RetCode请求状态码Int
ErrMsg请求信息String
TaskId任务的唯一idString
{ "RetCode":, "ErrMsg":, "TaskId": }CopyErrorSuccess

示例请求
POST /fetch/ HTTP/1.1Authorization:Authorization: UCloud this-is-my-public-key:AAAArandomsignature=Content-Type:application/jsonContent-Length: 159{ "Url": "http://xxx.xxx.xxx/xxx/movie.mp4", "Bucket": "example_bucket", "Key":"movie.mp4", "JobId": "xxxxxxxxxxxxxxxxxxxx", "SuccessCallbackUrl":"http://xxx.xxx.xxx/xxx", "FailureCallbackUrl":"http://xxx.xxx.xxx/xxx"}CopyErrorSuccess

返回
HTTP/1.1 200 OKContent-Type: application/json; charset=utf-8Content-Length: 122Connection: keep-alive{ "RetCode":0, "ErrMsg":"success", "TaskId": "d4d62b79-b292-411a-a1f2-47369e2b532f"}CopyErrorSuccess


回调内容

您可以在请求中指定任务完成后的回调地址,US3SYNC会依照任务执行结果给相应的地址放松POST请求,请求内容示例如下:


Failure callback
{ "Code":1, "TaskId": "d4d62b79-b292-411a-a1f2-47369e2b532f", "Message":"We encountered an internal error.", "Resource":"http://xxx.xxx.xxx/xxx/movie.mp4",}CopyErrorSuccess

Success callback
{ "Code": 0, "TaskId": "d4d62b79-b292-411a-a1f2-47369e2b532f", "ETag":"xxxxxxxx", "Key":"xxxxxxxxxxxxxxx.mp4", "SHA1":"0bc51013e87869137a432200f57daf6affdd3d0c", "Size":638304718}CopyErrorSuccess


主要功能

  1. 支持从 s3,oss,qiniu,youpai,S3 云存储迁移数据到 S3 中。
  2. 支持从 NAS 存储或者本地目录将数据迁移到 S3 中。
  3. 支持指定 URL 资源列表将数据迁移到 S3 中。
  4. 支持 web 管理,通过 web 管理迁移任务,迁移节点。
  5. 支持源端管理
  6. 支持配置任务定期执行
  7. 支持失败文件列表导出

注:暂不支持源端为归档类型的文件迁移到 S3。

文件结构

US3SYNC├── bin│ |── master # master 可执行程序│ └── worker # worker 可执行程序├── conf│ └── config.toml # 配置文件├── cert # https证书├── log # master日志文件存放路径├── pika # 依赖pika└── console.sh # 启动脚本CopyErrorSuccess





当前版本:1.10.4


运行环境:


Linux:

    CentOS 7.0 及以上 (可通过cat /etc/redhat-release查看)

    Ubuntu 16.04 及以上 (可通过cat /etc/issue查看)


US3SYNC 依赖 telnet,expect,rsync 命令,确保预装这些命令,使用 yum 源做包管理可以使用以下命令安装:

yum install -y telnet expect rsyncCopyErrorSuccess


下载并解压

wget -O US3SYNC.tgz "https://ufile-release.cn-bj.ufileos.com/US3SYNC/v1.10.4/US3SYNC.tgz"tar xzf US3SYNC.tgzcd ./US3SYNCCopyErrorSuccess


启动master服务


./console.sh start请设置缓存服务监听端口[9000]:请设置缓存服务密码[user-passwd]:# 云主机一般绑定EIP,建议ip地址使用0.0.0.0请设置web 服务监听地址[0.0.0.0:443]:# 内部通信地址不提供外网服务,建议ip地址使用机器内网ip请设置内部通信监听地址[x.x.x.x:8080]:请设置报错重试次数[10]:请设置web 登录使用的用户名[root]: 请设置web 登录使用的密码[passwd]: US3SYNC start success!# 查看master服务./console.sh show# 结束master服务./console.sh stop# 验证# 查看进程是否正常启动./console.sh showCopyErrorSuccess


添加worker节点

服务启动后,在浏览器中打开:https://<web服务监听IP>:<web服务监听端口>/

注:使用云主机部署迁移服务时,这里需要使用EIP,而不是0.0.0.0。

页面登录,使用启动时设置的用户名和密码。

添加工作节点,参考 创建节点界面说明,需要为每个节点提供唯一工作路径。 每个工作节点需要提供唯一工作路径,如果路径不存在会自动创建对应目录。

注:建议使用内网ip。



对象存储 S3

免费咨询获取折扣

Loading