# 快速上手

- [快速上手](#快速上手)
    - [界面说明](#界面说明)
        - [任务管理界面说明](#任务管理界面说明)
        - [创建任务界面说明](#创建任务界面说明)
        - [创建节点界面说明](#创建节点界面说明)
        - [创建迁移源界面说明](#创建迁移源界面说明)
    - [使用说明](#使用说明)
        - [添加Endpoint](#添加endpoint)
        - [创建任务](#创建任务)
        - [启动迁移](#启动迁移)
        - [暂停迁移](#暂停迁移)
        - [重试](#重试)
        - [导出失败文件列表](#导出失败文件列表)
    - [缓存说明](#缓存说明)
    - [迁移类型说明](#迁移类型说明)
        - [S3](#s3)
        - [local](#local)
        - [http](#http)





## 界面说明

服务启动后，通过浏览器打开页面<https://<web服务监听IP>:<web服务监听端口>，即可访问US3SYNC>界面，在界面上进行数据的迁移操作。

### 任务管理界面说明

```
- 任务操作：
开始迁移：开始文件迁移
开始校验：基于大小校验源端与目录端文件，会从源端与目的端全量拉取文件列表对比
管理-重试：迁移文件后有失败记录，通过该按钮将失败文件重新迁移
管理-导出：迁移文件后有失败记录，通过该按钮将失败文件列表导出到目的端bucket的.US3SYNC/details/[jobid]/error.log 位置
管理-删除：删除任务，会清理任务缓存记录
管理-克隆：打开创建任务界面，并填写当前任务信息

- 统计信息如下：
=================================
迁移总数:   此次迁移文件总数
等待迁移:   处于待迁移队列的文件个数
正在迁移:   正在执行迁移的文件个数
迁移成功:   已经迁移成功的文件个数
迁移失败:   已经迁移失败的文件个数
=================================

- 错误日志导出：
如果您的迁移任务出错，请您在任务接受后点击任务右侧管理下的导出按钮将错误日志导出，日志将会被us3sync上传到us3上，并在界面上提供给您一个可以下载的url。
您可以在节点所在机器上使用wget下载，并参考常见问题进行排查。
```
### 创建任务界面说明
* 任务类型：可选择迁移任务
* 正则匹配对象键：是否使用正则表达式过滤源端列表
* 定期执行：配置定时执行
* 同步删除：删除掉目的端存在而源端不存在的文件
* JobId：点击任务名称左侧的展开标记获取

### 创建节点界面说明
* ip地址：填写worker节点ip
* 用户名：填写worker节点ssh用户名
* 密码：填写worker节点ssh密码，免密登陆时可以为空


### 创建迁移源界面说明
* 超时时间：可指定上传/下载超时时间，默认为60s
* 域名：桶域名后缀，例如 cn-bj.ufileos.com
* Prefix：使用PrefixFileList获取，支持输入多个前缀列表




## 使用说明

### 添加Endpoint

添加迁移源，点击创建Endpoint按钮，在对话框中填写对应信息，点击确定。

### 创建任务

创建任务，点击创建任务按钮，在对话框中填写对应信息，点击确定。如果您想要创建fetch任务，请您点击界面上的Fetch任务选项。
另外JobId请您点击任务名称左侧的展开标记获取。

说明：

迁移过程会将指定的源端前缀下的文件迁移到指定的目的端前缀下面，例如：

```
1. 源端前缀指定了：A/ 目的端前缀指定了 B/
此时会将源端 A/ 下的所有文件迁移到目的端 B/ 下
如果源端有一个文件A/a.txt 迁移后在目录端会有 B/a.txt
2. 源端前缀指定了：A/ 目的端前缀指定了空路径
此时会将源端 A/ 下的所有文件迁移到目的端根目录下
如果源端有一个文件A/a.txt 迁移后在目录端根目录下会有 a.txt
```

覆盖条件选项说明，目前支持三种方式：

```
> 全覆盖：源端存在的文件全部强制上传到US3
> 条件覆盖：根据指定字段判断是否需要迁移文件
> > 条件覆盖目前支持三个字段：文件类型，文件时间戳，文件大小
> >  文件类型和文件大小通过判断 源端文件与目的端文件对应属性是否一致
> >  文件时间戳通过判断 源端文件比目的端文件更新则重新迁移该文件
> 不覆盖：发现目的端已经存在同名文件，跳过该文件
```

定期任务配置说明：

```
> 如果需要定期执行迁移，配置每隔几天，什么时间进行迁移
```

增量过滤条件说明，根据配置过滤待迁移文件，支持两种规则：

```
1. 根据绝对时间过滤，用户指定起始时间。
2. 根据最近时间过滤，用户指定迁移最近几个小时的文件。如果配置定期任务执行，则每次定期任务启动，都会根据当时时间进行计算。
```

正则匹配说明：

```
1. 若配置此项，则拉取源端列表时会匹配正则表示式，只有命中的文件才可能被迁移。
2. 此表达式不会匹配源端前缀，因此和前缀配合使用可以匹配到某前缀下命中该正则表达式的文件。
```

### 添加告警

* 当任务的结束，worker宕机通过post请求发送消息
* 收集迁移以及fetch任务的错误数据指标
* 允许用户通过规则字符串的形式配置规则job错误数据告警，规则匹配时，通过post请求发送消息

### 监控告警模块说明

创建告警：
* 类型：选择针对某个job创建告警或者针对集群创建告警
* http请求方法：告警通知方法
* 类型 > 任务告警：可选择告警逻辑，编辑复杂告警条件
* 持续时间：一个周期内至多告警一次
* 任务名：选择告警的任务


复杂告警逻辑可以自行编辑，支持的变量如下:
* RESOURCE_ERR_4XX: 源端4xx错误数
* RESOURCE_ERR_5XX: 源端5xx错误数
* TARGET_ERR_4XX:   目的端4xx错误数
* TARGET_ERR_5XX:   目的端5xx错误数
* LOCAL_ERR:        其它错误数
* Q_LEN:            fetch任务正在等待的迁移的文件数量

支持的操作符如下:
* ||: 或逻辑
* &&: 与逻辑
* (): 括号内的判断逻辑优先级最高

例如 ``` (RESOURCE_ERR_4XX > 100 || RESOURCE_ERR_5XX > 200) && TARGET_ERR_4XX > 150 && Q_LEN > 150 ```

消息模版处可以填写自定义的请求消息模版，使用%s标识告警信息，例如``` "alert! error: %s" ```
在告警时会发送 ``` alert! error: number of resource bucket error 4xx is 100, greater than 50 ```



### 启动迁移

参考 [界面说明](#界面说明)，点击开启迁移按钮。

### 暂停迁移

参考 [界面说明](#界面说明)，点击暂停按钮。

### 重试

如果迁移后有失败记录，可以对迁移失败的文件进行重试，参考 [界面说明](#界面说明)，点击管理-重试按钮。

### 导出失败文件列表

如果迁移后有失败记录，可以对迁移失败的文件列表导出，参考 [界面说明](#界面说明)，点击管理-导出按钮。

## 缓存说明

US3SYNC 使用 pika 提供缓存服务。主要缓存以下信息：

- 任务详细信息
- 迁移统计信息
- 迁移记录

## 迁移类型说明

| 迁移类型 | 说明                                                           |
| -------- | -------------------------------------------------------------- |
| S3       | 实现基于 S3 接口的迁移，支持 S3 协议的云平台皆可基于此类型迁移 |
| OSS      | 实现 OSS 云存储接口                                            |
| qiniu    | 实现 qiniu 云存储接口                                          |
| youpai   | 实现 youpai 云存储接口                                         |
| us3      | 实现 us3 云存储接口                                            |
| NAS      | 实现 NAS 系统或者本地文件迁移                                  |
| URL      | 实现 基于 URL 列表迁移                                         |

### S3

AWS S3源需要额外提供待迁移空间的 region 字段，参考：<https://docs.aws.amazon.com/zh_cn/general/latest/gr/s3.html> 。

第三方实现S3协议参考对应厂商S3文档说明。

### local

local 源需要提供待迁移目录的路径

### http

http 源需要提供待迁移文件列表的 url 地址。

每行代表一个待迁移资源，待迁移文件列表格式如下：

> 文件url地址
> 文件url地址
