文件比较与同步

November 23, 2021About 14 min

文件比较与同步

SDK类名:/tools/Compare

1 单体-1 新建

SDK方法名:createCompare;

URL

//compare

Method

POST

Request

名称类型必选初始值简介Mock规则
compareObject
  excl_pathArray源机排除目录
  bkup_policyNumber2备份策略,2 立即,0 定时,1 循环;
  bkup_one_timeNumber0定时任务,执行时间(备份策略)
  bkup_scheduleObject周期任务(备份策略)
    sched_gap_minNumber60间隔分钟数
    sched_timeArray["00:00:00"]哪几点
    sched_dayArray["1"]哪几天
    sched_time_endString23:59运行时间范围 结束
    limitNumber5数据保留期限(天)
    sched_time_startString00:00运行时间范围 开始
    sched_everyNumber00:每天;1:每周:2:每月;3:每隔;
  mirr_file_checkString1校验方式,0:md5;1:文件大小和时间校验,不同则严格校验;2: 文件时间校验,不同则覆盖目标文件;3:文件总是覆写;
  task_nameStringtestCompare1任务名
  wk_pathArray["E:\test\"]工作路径
  bk_uuidString67E33CDB-D75B-15B3-367D-50C764F5A26F备机节点uuid
  cmp_typeNumber0任务类型,0:只比较,1:比较并同步;
  bk_pathArray["E:\test\"]备份路径
  wk_uuidString67E33CDB-D75B-15B3-367D-50C764F5A26F工作机节点uuid
  mirr_sync_attrNumber文件安全属性,0代表不同步安全属性,1代表同步安全属性
  compress_switchNumber0传输压缩开关:0,1
  compressNumber0压缩,0关;1:低;2:中;
  encrypt_switchString加密开关,0关1开
  secret_keyString加密密钥
  biz_grp_listArray业务分组UUID
  oph_policyString孤儿文件处理策略:0不处理,1删除,2移动到指定路径;6 归档;
  oph_pathString孤儿文件,移动到指定路径、归档,必填
  ct_name_str1String文件名转换:prefix string / regex string
  ct_name_str2String文件名转换:suffix string / replace string
  ct_name_str3String文件名转换:restore regex string
  ct_name_str4String文件名转换:restore regex string
  data_ip_uuidString67E33CDB-D75B-15B3-367D-50C764F5A26F灾备机数据地址
  traversing_syncNumber遍历时传输: 1-开启 0-不开启
  band_widthString带宽控制:12301:00-02:002m,3412:00-13:006m,按照此类型拼接,没有可不传
  task_typeNumber任务类型:
默认不传,
新建模板时传10
  file_type_filter_switchNumber包含0排除1
  file_type_filterString文件类型过滤,比如:.doc,.docx

Response

名称类型必选初始值简介Mock规则
retNumber200@mock=200
msgString@mock=
dataObject
  codeNumber0@mock=0
  messageString[0] success@mock=[0] success

单体-1 修改

SDK方法名:modifyCompare;

URL

//compare/:uuid([A-F0-9-]+)

Method

PUT

Request

名称类型必选初始值简介Mock规则
compareObject
  excl_pathArray
  bkup_one_timeNumber0
  bkup_scheduleObject
    sched_gap_minNumber60
    sched_timeArray["00:00:00"]
    sched_dayArray["1"]
    sched_time_endString23:59
    limitNumber5
    sched_time_startString00:00
    sched_everyNumber0
  mirr_file_checkString1
  task_nameStringtestCompare1
  wk_pathArray["E:\test\"]
  bk_uuidString67E33CDB-D75B-15B3-367D-50C764F5A26F
  cmp_typeNumber0
  bk_pathArray["E:\test\"]
  bkup_policyNumber2
  compress_switchNumber0
  compressNumber0
  wk_uuidString67E33CDB-D75B-15B3-367D-50C764F5A26F
  mirr_sync_attrNumber1
  encrypt_switchString
  secret_keyString
  biz_grp_listArray
  oph_policyString
  ct_name_str1String
  ct_name_str2String
  ct_name_str3String
  ct_name_str4String
  task_uuidString任务UUID
  random_strString
  data_ip_uuidString67E33CDB-D75B-15B3-367D-50C764F5A26F灾备机数据地址
  band_widthString带宽控制:12301:00-02:002m,3412:00-13:006m,按照此类型拼接,没有可不传
  task_typeNumber任务类型
  file_type_filter_switchString包含0排除1
  file_type_filterString文件类型过滤,比如:.doc,.docx

Response

名称类型必选初始值简介Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString[0] success

1 单体-2 获取单个(包括比较结果)

类名:/tools/Compare

方法名:describeCompare

URL

//compare/:uuid([A-F0-9-]+)

Method

GET

Request

名称类型必选初始值简介Mock规则

Response

名称类型必选初始值简介Mock规则
msgString@mock=
retNumber200@mock=200
dataObject
  codeNumber0@mock=0
  compareObject
    task_typeNumber00:主任务(旧)
1:子任务(旧)
2:主任务(新)
3:子任务(新)
    wk_uuidString@mock=, 工作机节点uuid
    task_nameString@mock=, 任务名
    cmp_typeNumber0@mock=0, 任务类型,0:只比较,1:比较并同步;
    result_sumObject, 结果概览
      state_codeNumber0@mock=0, 结果代码
      f_diffNumber123@mock=123, 不同文件数
      finish_inNumber123@mock=123, 耗时(秒)
      f_totalNumber0@mock=0, 文件总数
      f_missingNumber123@mock=123, 丢失文件数
      totalNumber100@mock=100, 总文件大小
      f_skipNumber123@mock=123, 相同文件数
    create_timeNumber1515568566@mock=1515568566, 任务创建时间
    bk_uuidString@mock=, 备机节点uuid
    bkup_policyNumber0@mock=0, 备份策略,2 立即,0 定时,1 循环;
    bk_pathArray, 备份路径
    statusString@pick(FINISH, COMPARING, STOP)@mock=FINISH, SCHEDULED,COMPARING,GENERATING,FINISH
    bkup_scheduleObject, 周期任务(备份策略)
      sched_gap_minNumber@integer(1, 64)@mock=@integer(1, 64), 间隔分钟数
      sched_timeArray@time('HH:mm')@mock=@time('HH:mm'), 哪几点
      sched_everyNumber2@mock=2, 0:每天;1:每周:2:每月;3:每隔;
      sched_time_endString@time('HH:mm')@mock=@time('HH:mm'), 运行时间范围 结束
      sched_dayArray"@integer(1, 31)"@mock="@integer(1, 31)", 哪几天
      limitNumber@integer(1, 64)@mock=@integer(1, 64), 数据保留期限(天)
      sched_time_startString@time('HH:mm')@mock=@time('HH:mm'), 运行时间范围 开始
    user_uuidString@pick(["1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC","1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC"])@mock=@pick(["1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC","1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC"]), 操作者用户名uuid
    start_timeNumber1508833766@mock=1508833766, 开始时间,unix时间戳
    task_uuidString7AD64D7A-7D1D-AC51-5DF1-29A58345A288@mock=7AD64D7A-7D1D-AC51-5DF1-29A58345A288, 任务id
    bkup_one_timeNumber1515568566@mock=1515568566, 定时任务,执行时间(备份策略)
    mirr_file_checkString1@mock=1, 校验方式,0:md5;1:文件大小和时间;
    end_timeNumber1508833953@mock=1508833953, 结束时间,unix时间戳
    compressNumber0@mock=0, 压缩,0关;1:低;2:中;
    excl_pathArray源机排除目录
    wk_pathArray工作路径
    raw_uuidString7AD64D7A-7D1D-AC51-5DF1-29A58345A288
    is_biz_adminNumber授权标记
    can_upNumber授权标记
    can_opNumber授权标记
    can_delNumber授权标记
    thread_numNumber4并行任务数量
    data_ip_uuidString7AD64D7A-7D1D-AC51-5DF1-29A58345A288灾备机数据地址
    band_widthString带宽控制:12301:00-02:002m,3412:00-13:006m,按照此类型拼接,没有可不传
  messageString[0] success

1 单体-2 获取比较结果详情

详见

i2soft / i2cc / webapi / api /

底层日志 / i2node日志 / 规则/任务日志 接口;

http://rap.info2soft.com/workspace/myWorkspace.do?projectId=3#225;

SDK方法名:listCompareLogs;

URL

//logs

Method

GET

Request

名称类型必选初始值简介Mock规则

Response

名称类型必选初始值简介Mock规则

2 列表-1 获取列表

获取列表详细入参说明详见【节点管理-获取节点列表】接口说明;

类名:/tools/Compare

方法名:listCompare

URL

//compare

Method

GET

Request

名称类型必选初始值简介Mock规则
limitNumber10, 可选,不传就是全部
pageNumber1, 可选,不传就是全部
search_fieldString, 可选,搜索字段
search_valueString, 可选,搜索字段对应值(可以模糊)
typeString任务类型:
获取模板时传10;获取规则时不传

Response

名称类型必选初始值简介Mock规则
msgString@mock=
dataObject
  totalNumber100@mock=100, 规则总数
  codeNumber0@mock=0
  info_listArray10
    bk_uuidString0DD4E727-70AB-62C6-BEB5-D012DFAE46E3@mock=0DD4E727-70AB-62C6-BEB5-D012DFAE46E3, 备机节点uuid
    end_timeNumber1508833953@mock=1508833953, 结束时间,unix时间戳
    wk_uuidString0DD4E727-70AB-62C6-BEB5-D012DFAE46E3@mock=0DD4E727-70AB-62C6-BEB5-D012DFAE46E3, 工作机节点uuid
    usernameString@pick(["admin", "user"])@mock=@pick(["admin", "user"]), 所有者
    bkup_policyNumber1@mock=2, 备份策略,0立刻,1定时,2周期
    statusStringFINISH@mock=FINISH, SCHEDULED,COMPARING,GENERATING,FINISH
    result_sumObject, 结果概览
      f_missingNumber123@mock=123, 丢失文件数
      f_totalNumber0@mock=0, 文件总数
      f_skipNumber123@mock=123, 相同文件数
      totalNumber100@mock=100, 总文件大小
      finish_inNumber123@mock=123, 耗时(秒)
      state_codeNumber0@mock=0, 结果代码
      f_diffNumber123@mock=123, 不同文件数
    wk_node_nameString@pick(["Smith", "Will", "Nary"])@mock=@pick(["Smith", "Will", "Nary"]), 工作机节点名
    user_uuidString@pick(["1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC","1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC"])@mock=@pick(["1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC","1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC"]), 操作者用户名uuid
    bk_node_nameString@pick(["kevin", "Jane", "Grey"])@mock=@pick(["kevin", "Jane", "Grey"]), 备机节点名
    start_timeNumber1508833766@mock=1508833766, 开始时间,unix时间戳
    task_uuidString7AD64D7A-7D1D-AC51-5DF1-29A58345A288@mock=7AD64D7A-7D1D-AC51-5DF1-29A58345A288, 任务id,如果节点和规则id都不传,则全部
    task_nameStringtask_name@mock=task_name, 任务名
    create_timeNumber1515568566@mock=1515568566, 任务创建时间
    task_typeNumber2比较任务类型:
旧类型:0:主任务,1:子任务
新类型:2:主任务,3:子任务
    can_upNumber1
    can_opNumber1
    can_delNumber1
  messageString[0] success@mock=[0] success
retNumber200@mock=200

2 列表-1.1 获取结果列表(周期)

类名:/tools/Compare

方法名:listCircleCompareResult

URL

//compare/:uuid([A-F0-9-]+)/result_list

Method

GET

Request

名称类型必选初始值简介Mock规则
limitNumber10可选,不传就是全部
pageNumber1可选,不传就是全部
search_fieldString可选,搜索字段
search_valueString可选,搜索字段对应值(可以模糊)

Response

名称类型必选初始值简介Mock规则
retNumber200@mock=200
msgString@mock=
dataObject
  codeNumber0@mock=0
  messageString[0] success@mock=[0] success
  totalNumber100@mock=100, 规则总数
  info_listArray10
    task_uuidString7AD64D7A-7D1D-AC51-5DF1-29A58345A288@mock=7AD64D7A-7D1D-AC51-5DF1-29A58345A288, 任务id,如果节点和规则id都不传,则全部
    wk_uuidString0DD4E727-70AB-62C6-BEB5-D012DFAE46E3@mock=0DD4E727-70AB-62C6-BEB5-D012DFAE46E3, 工作机节点uuid
    bk_node_nameString@pick(["kevin", "Jane", "Grey"])@mock=@pick(["kevin", "Jane", "Grey"]), 备机节点名
    usernameString@pick(["admin", "user"])@mock=@pick(["admin", "user"]), 所有者
    bk_uuidString0DD4E727-70AB-62C6-BEB5-D012DFAE46E3@mock=0DD4E727-70AB-62C6-BEB5-D012DFAE46E3, 备机节点uuid
    start_timeNumber1508833766@mock=1508833766, 开始时间,unix时间戳
    user_uuidString@pick(["1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC","1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC"])@mock=@pick(["1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC","1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC"]), 操作者用户名uuid
    end_timeNumber1508833953@mock=1508833953, 结束时间,unix时间戳
    task_nameStringtask_name@mock=task_name, 任务名
    statusStringFINISH@mock=FINISH, SCHEDULED,COMPARING,GENERATING,FINISH
    bkup_policyNumber0@mock=0, 备份策略,0立刻,1定时,2周期
    raw_uuidString7AD64D7A-7D1D-AC51-5DF1-29A58345A288@mock=7AD64D7A-7D1D-AC51-5DF1-29A58345A288, 父任务id
    create_timeNumber1515568566@mock=1515568566, 任务创建时间
    result_sumObject, 结果概览
      f_totalNumber0@mock=0, 文件总数
      totalNumber100@mock=100, 总文件大小
      f_missingNumber123@mock=123, 丢失文件数
      finish_inNumber123@mock=123, 耗时(秒)
      f_diffNumber123@mock=123, 不同文件数
      state_codeNumber0@mock=0, 结果代码
      f_skipNumber123@mock=123, 相同文件数
      start_timeNumber起始时间戳
      end_timeNumber结束时间戳
      transfer_bytesNumber文件传输数据大小,单位byte
    wk_node_nameString@pick(["Smith", "Will", "Nary"])@mock=@pick(["Smith", "Will", "Nary"]), 工作机节点名

2 列表-2 状态

类名:/tools/Compare

方法名:listCompareStatus

URL

//compare/status

Method

GET

Request

名称类型必选初始值简介Mock规则
task_uuidsArray["11111111-1111-1111-1111-111111111111"]必传,uuid数组,页面加载第一次获取状态一个一个获取,之后是批量获取;

Response

名称类型必选初始值简介Mock规则
retNumber200
dataObject
  messageString[0] success
  statusObject
    progressNumber0进度
    result_sumObject结果概览
      f_missingNumber123丢失文件数
      state_codeNumber0结果代码
      f_diffNumber123不同文件数
      totalNumber100总文件大小
      f_skipNumber123相同文件数
      finish_inNumber123耗时(秒)
      f_totalNumber0文件总数
      already_cmp_numNumber1已比较次数
      sub_task_numNumber1子任务数量
    task_uuidString7AD64D7A-7D1D-AC51-5DF1-29A58345A288任务id
    statusNumberFINISH@mock=FINISH, SCHEDULED,COMPARING,GENERATING,FINISH
    blistNumber遍历未完成:
0:否;
1:是;
    file_totalString文件总数
    file_currentString当前文件数
  codeNumber0
  countNumber0
msgString

2 列表-4 操作

类名:/tools/Compare

方法名:[action] + 'Compare'

URL

//compare/operate

Method

POST

Request

名称类型必选初始值简介Mock规则
operateStringdownload下载:download,删除:delete(与独立的删除接口效果等同;
立即执行: start_immediately;
停止:stop;
task_uuidsArray["11111111-1111-1111-1111-111111111111"]必传

Response

名称类型必选初始值简介Mock规则
retNumber200@mock=200
msgString@mock=
dataObject
  file_nameStringCPR_20180207164539.zip@mock=CPR_20180207164539.zip
  messageString[0] 操作成功@mock=[0] 操作成功
  codeNumber0@mock=0
  download_urlStringE:\ctrlcenter\wwwroot\default\public\download\CPR_20180207164539.zip@mock=E:\ctrlcenter\wwwroot\default\public\download\CPR_20180207164539.zip

2 列表-3 删除

类名:/tools/Compare

方法名:deleteCompare

URL

//compare

Method

DELETE

Request

名称类型必选初始值简介Mock规则
task_uuidsArray["11111111-1111-1111-1111-111111111111"]规则数组
forceNumber1 - 强制删除 0 - 非强制删除

Response

名称类型必选初始值简介Mock规则
msgString
dataObject
  codeNumber11110001
  messageString
  fail_listArray
    codeNumber11110001
    messageString[-1] 离线
    task_uuidStringE28184D8-869B-BF56-A77C-3CC835FAAC34
    task_nameStringtest2
  success_listArray
    codeNumber11110001
    messageString[0] success
    task_uuidStringEA8184D8-869B-BF56-A77C-3CC835FAAC34
    task_nameStringtest1
retNumber200

接收任务执行结果

SDK方法名:collectCompareResult

URL

//compare/collect_result

Method

POST

Request

名称类型必选初始值简介Mock规则
codeString0任务执行结果code
timeString1632453814-1632453816任务起始时间戳时间-结束时间
filesString100总文件数量
bytesString1024总文件大小
transfer_bytesString10传输文件大小
missingString1缺失文件数量
diffString2不同文件数量
equalString97相同文件数量
erroString2同步出错文件数量
task_uuidString@guid比较任务uuid

Response

名称类型必选初始值简介Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString
Last update: 6/25/2022, 9:23:18 PM
Contributors: ganl