文件比较与同步

February 26, 2024About 16 min

文件比较与同步

SDK类名:/tools/Compare

1 单体-1 新建

SDK方法名:createCompare;

URL

/compare

Method

POST

Request

名称类型必选简介Mock初始值Mock规则
compareObject
  excl_pathArray源机排除目录
  bkup_policyNumber备份策略,2 立即,0 定时,1 循环;2
  bkup_one_timeNumber任务运行策略当中的“开始时间”,涉及场景:
1. 只运行一次,预约时间;
2. 重复运行 - 每隔

其余情况默认传0
0
  bkup_scheduleObject周期任务(备份策略)
    sched_gap_minNumber间隔分钟数 1-144060
    sched_timeArray哪几点["00:00:00"]
    sched_dayArray哪几天["1"]
    sched_time_endString运行时间范围 结束23:59
    limitNumber保留数 1-99995
    sched_time_startString运行时间范围 开始00:00
    sched_everyNumber0:每天;1:每周:2:每月;3:每隔;0
  mirr_file_checkString校验方式:
0:md5;
1:文件大小和时间校验,不同则严格校验;
2:文件时间校验,不同则覆盖目标文件;
3:文件总是覆写;
1
  task_nameString任务名testCompare1
  wk_pathArray工作路径["E:\test\"]
  bk_uuidString备机节点uuid67E33CDB-D75B-15B3-367D-50C764F5A26F
  cmp_typeNumber任务类型,0:只比较,1:比较并同步;0
  bk_pathArray备份路径["E:\test\"]
  wk_uuidString工作机节点uuid67E33CDB-D75B-15B3-367D-50C764F5A26F
  mirr_sync_attrNumber文件安全属性,0代表不同步安全属性,1代表同步安全属性
  compress_switchNumber传输压缩开关:0,10
  compressNumber压缩类型:
1:极速压缩;
2:普通压缩;
3:快速压缩;
4:均衡压缩;
0
  encrypt_switchNumber加密开关,0关1开
  encryptNumber加密类型:
1:AES;
2:SM4;
  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_uuidString灾备机数据地址67E33CDB-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
  pre_work_scriptString比较前源端脚本
  pre_back_scriptString比较前备端脚本
  post_work_scriptString比较后源端脚本
  post_back_scriptString比较后备端脚本
  script_timeoutNumber脚本超时时间
  script_timeout_everyString脚本超时时间单位,秒:sec,分钟:min
  subpath_filter_switchNumber子路径过滤:
0:包含;
1:排除;
  subpath_filterString需要过滤的子路径

Response

名称类型必选简介Mock初始值Mock规则
retNumber@mock=200200
msgString@mock=
dataObject
  codeNumber@mock=00
  messageString@mock=[0] success[0] success
  uuidString规则uuid

单体-1 修改

SDK方法名:modifyCompare;

URL

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

Method

PUT

Request

名称类型必选简介Mock初始值Mock规则
compareObject
  excl_pathArray
  bkup_one_timeNumber任务运行策略当中的“开始时间”,涉及场景:
1. 只运行一次,预约时间;
2. 重复运行 - 每隔

其余情况默认传0
0
  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
  compressNumber压缩类型:
1:极速压缩;
2:普通压缩;
3:快速压缩;
4:均衡压缩;
0
  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_uuidString灾备机数据地址67E33CDB-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
  pre_work_scriptString
  pre_back_scriptString
  post_work_scriptString
  post_back_scriptString
  subpath_filter_switchNumber
  subpath_filterString

Response

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

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

类名:/tools/Compare

方法名:describeCompare

URL

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

Method

GET

Request

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

Response

名称类型必选简介Mock初始值Mock规则
msgString@mock=
retNumber@mock=200200
dataObject
  codeNumber@mock=00
  compareObject
    task_typeNumber0:主任务(旧)
1:子任务(旧)
2:主任务(新)
3:子任务(新)
0
    wk_uuidString@mock=, 工作机节点uuid
    task_nameString@mock=, 任务名
    cmp_typeNumber@mock=0, 任务类型,0:只比较,1:比较并同步;0
    result_sumObject, 结果概览
      state_codeNumber@mock=0, 结果代码0
      f_diffNumber@mock=123, 不同文件数123
      finish_inNumber@mock=123, 耗时(秒)123
      f_totalNumber@mock=0, 文件总数0
      f_missingNumber@mock=123, 丢失文件数123
      totalNumber@mock=100, 总文件大小100
      f_skipNumber@mock=123, 相同文件数123
    create_timeNumber@mock=1515568566, 任务创建时间1515568566
    bk_uuidString@mock=, 备机节点uuid
    bkup_policyNumber@mock=0, 备份策略,2 立即,0 定时,1 循环;0
    bk_pathArray, 备份路径
    statusString@mock=FINISH, SCHEDULED,COMPARING,GENERATING,FINISH@pick(FINISH, COMPARING, STOP)
    bkup_scheduleObject, 周期任务(备份策略)
      sched_gap_minNumber@mock=@integer(1, 64), 间隔分钟数@integer(1, 64)
      sched_timeArray@mock=@time('HH:mm'), 哪几点@time('HH:mm')
      sched_everyNumber@mock=2, 0:每天;1:每周:2:每月;3:每隔;2
      sched_time_endString@mock=@time('HH:mm'), 运行时间范围 结束@time('HH:mm')
      sched_dayArray@mock="@integer(1, 31)", 哪几天"@integer(1, 31)"
      limitNumber@mock=@integer(1, 64), 数据保留期限(天)@integer(1, 64)
      sched_time_startString@mock=@time('HH:mm'), 运行时间范围 开始@time('HH:mm')
    user_uuidString@mock=@pick(["1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC","1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC"]), 操作者用户名uuid@pick(["1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC","1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC"])
    start_timeNumber@mock=1508833766, 开始时间,unix时间戳1508833766
    task_uuidString@mock=7AD64D7A-7D1D-AC51-5DF1-29A58345A288, 任务id7AD64D7A-7D1D-AC51-5DF1-29A58345A288
    bkup_one_timeNumber@mock=1515568566, 定时任务,执行时间(备份策略)1515568566
    mirr_file_checkString@mock=1, 校验方式,0:md5;1:文件大小和时间;1
    end_timeNumber@mock=1508833953, 结束时间,unix时间戳1508833953
    compressNumber@mock=0, 压缩,0关;1:低;2:中;0
    excl_pathArray源机排除目录
    wk_pathArray工作路径
    raw_uuidString7AD64D7A-7D1D-AC51-5DF1-29A58345A288
    is_biz_adminNumber授权标记
    can_upNumber授权标记
    can_opNumber授权标记
    can_delNumber授权标记
    thread_numNumber并行任务数量4
    data_ip_uuidString灾备机数据地址7AD64D7A-7D1D-AC51-5DF1-29A58345A288
    band_widthString带宽控制:12301:00-02:002m,3412:00-13:006m,按照此类型拼接,没有可不传
    subpath_filter_switchNumber
    subpath_filterString
  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初始值Mock规则

Response

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

2 列表-1 获取列表

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

类名:/tools/Compare

方法名:listCompare

URL

/compare

Method

GET

Request

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

Response

名称类型必选简介Mock初始值Mock规则
msgString@mock=
dataObject
  totalNumber@mock=100, 规则总数100
  codeNumber@mock=00
  info_listArray10
    bk_uuidString@mock=0DD4E727-70AB-62C6-BEB5-D012DFAE46E3, 备机节点uuid0DD4E727-70AB-62C6-BEB5-D012DFAE46E3
    end_timeNumber@mock=1508833953, 结束时间,unix时间戳1508833953
    wk_uuidString@mock=0DD4E727-70AB-62C6-BEB5-D012DFAE46E3, 工作机节点uuid0DD4E727-70AB-62C6-BEB5-D012DFAE46E3
    usernameString@mock=@pick(["admin", "user"]), 所有者@pick(["admin", "user"])
    bkup_policyNumber@mock=2, 备份策略,0立刻,1定时,2周期@pick([0, 1])
    statusString@mock=FINISH, SCHEDULED,COMPARING,GENERATING,FINISHFINISH
    result_sumObject, 结果概览
      f_missingNumber@mock=123, 丢失文件数123
      f_totalNumber@mock=0, 文件总数0
      f_skipNumber@mock=123, 相同文件数123
      totalNumber@mock=100, 总文件大小100
      finish_inNumber@mock=123, 耗时(秒)123
      state_codeNumber@mock=0, 结果代码0
      f_diffNumber@mock=123, 不同文件数123
    last_result_sumObject上次执行结果。规则执行完毕被新result_sum覆盖
      f_missingString@mock=123, 丢失文件数
      f_totalString@mock=0, 文件总数
      f_skipString@mock=123, 相同文件数
      totalString@mock=100, 总文件大小
      finish_inString@mock=123, 耗时(秒)
      state_codeString@mock=0, 结果代码
      f_diffString@mock=123, 不同文件数
    wk_node_nameString@mock=@pick(["Smith", "Will", "Nary"]), 工作机节点名@pick(["Smith", "Will", "Nary"])
    user_uuidString@mock=@pick(["1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC","1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC"]), 操作者用户名uuid@pick(["1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC","1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC"])
    bk_node_nameString@mock=@pick(["kevin", "Jane", "Grey"]), 备机节点名@pick(["kevin", "Jane", "Grey"])
    start_timeNumber@mock=1508833766, 开始时间,unix时间戳1508833766
    task_uuidString@mock=7AD64D7A-7D1D-AC51-5DF1-29A58345A288, 任务id,如果节点和规则id都不传,则全部7AD64D7A-7D1D-AC51-5DF1-29A58345A288
    task_nameString@mock=task_name, 任务名task_name
    create_timeNumber@mock=1515568566, 任务创建时间1515568566
    task_typeNumber比较任务类型:
旧类型:0:主任务,1:子任务
新类型:2:主任务,3:子任务
2
    can_upNumber1
    can_opNumber1
    can_delNumber1
  messageString@mock=[0] success[0] success
retNumber@mock=200200

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

类名:/tools/Compare

方法名:listCircleCompareResult

URL

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

Method

GET

Request

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

Response

名称类型必选简介Mock初始值Mock规则
retNumber@mock=200200
msgString@mock=
dataObject
  codeNumber@mock=00
  messageString@mock=[0] success[0] success
  totalNumber@mock=100, 规则总数100
  info_listArray10
    task_uuidString@mock=7AD64D7A-7D1D-AC51-5DF1-29A58345A288, 任务id,如果节点和规则id都不传,则全部7AD64D7A-7D1D-AC51-5DF1-29A58345A288
    wk_uuidString@mock=0DD4E727-70AB-62C6-BEB5-D012DFAE46E3, 工作机节点uuid0DD4E727-70AB-62C6-BEB5-D012DFAE46E3
    bk_node_nameString@mock=@pick(["kevin", "Jane", "Grey"]), 备机节点名@pick(["kevin", "Jane", "Grey"])
    usernameString@mock=@pick(["admin", "user"]), 所有者@pick(["admin", "user"])
    bk_uuidString@mock=0DD4E727-70AB-62C6-BEB5-D012DFAE46E3, 备机节点uuid0DD4E727-70AB-62C6-BEB5-D012DFAE46E3
    start_timeNumber@mock=1508833766, 开始时间,unix时间戳1508833766
    user_uuidString@mock=@pick(["1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC","1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC"]), 操作者用户名uuid@pick(["1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC","1BCFCAA3-E3C8-3E28-BDC5-BE36FDC2B5DC"])
    end_timeNumber@mock=1508833953, 结束时间,unix时间戳1508833953
    task_nameString@mock=task_name, 任务名task_name
    statusString@mock=FINISH, SCHEDULED,COMPARING,GENERATING,FINISHFINISH
    bkup_policyNumber@mock=0, 备份策略,0立刻,1定时,2周期0
    raw_uuidString@mock=7AD64D7A-7D1D-AC51-5DF1-29A58345A288, 父任务id7AD64D7A-7D1D-AC51-5DF1-29A58345A288
    create_timeNumber@mock=1515568566, 任务创建时间1515568566
    result_sumObject, 结果概览
      f_totalNumber@mock=0, 文件总数0
      totalNumber@mock=100, 总文件大小100
      f_missingNumber@mock=123, 丢失文件数123
      finish_inNumber@mock=123, 耗时(秒)123
      f_diffNumber@mock=123, 不同文件数123
      state_codeNumber@mock=0, 结果代码0
      f_skipNumber@mock=123, 相同文件数123
      start_timeNumber起始时间戳
      end_timeNumber结束时间戳
      transfer_bytesNumber文件传输数据大小,单位byte
    wk_node_nameString@mock=@pick(["Smith", "Will", "Nary"]), 工作机节点名@pick(["Smith", "Will", "Nary"])

2 列表-2 状态

类名:/tools/Compare

方法名:listCompareStatus

URL

/compare/status

Method

GET

Request

名称类型必选简介Mock初始值Mock规则
task_uuidsArray必传,uuid数组,页面加载第一次获取状态一个一个获取,之后是批量获取;["11111111-1111-1111-1111-111111111111"]
force_refreshNumber点击操作栏刷新按钮必传,下发1,表示从rpc获取;其他情况不传

Response

名称类型必选简介Mock初始值Mock规则
retNumber200
dataObject
  messageString[0] success
  statusObject
    progressNumber进度0
    result_sumObject结果概览
      f_missingNumber丢失文件数123
      state_codeNumber结果代码0
      f_diffNumber不同文件数123
      totalNumber总文件大小100
      f_skipNumber相同文件数123
      finish_inNumber耗时(秒)123
      f_totalNumber文件总数0
      already_cmp_numNumber已比较次数1
      sub_task_numNumber子任务数量1
    task_uuidString任务id7AD64D7A-7D1D-AC51-5DF1-29A58345A288
    statusNumber@mock=FINISH, SCHEDULED,COMPARING,GENERATING,FINISHFINISH
    blistNumber遍历未完成:
0:否;
1:是;
    file_totalString文件总数
    file_currentString当前文件数
  codeNumber0
  countNumber0
msgString

2 列表-4 操作

类名:/tools/Compare

SDK方法名:{operate}Compare

URL

/compare/operate

Method

POST

Request

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

Response

名称类型必选简介Mock初始值Mock规则
retNumber@mock=200200
msgString@mock=
dataObject
  file_nameString@mock=CPR_20180207164539.zipCPR_20180207164539.zip
  messageString@mock=[0] 操作成功[0] 操作成功
  codeNumber@mock=00
  download_urlString@mock=E:\ctrlcenter\wwwroot\default\public\download\CPR_20180207164539.zipE:\ctrlcenter\wwwroot\default\public\download\CPR_20180207164539.zip

2 列表-3 删除

类名:/tools/Compare

方法名:deleteCompare

URL

/compare

Method

DELETE

Request

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

Response

名称类型必选简介Mock初始值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初始值Mock规则
codeString任务执行结果code0
timeString任务起始时间戳时间-结束时间1632453814-1632453816
filesString总文件数量100
bytesString总文件大小1024
transfer_bytesString传输文件大小10
missingString缺失文件数量1
diffString不同文件数量2
equalString相同文件数量97
erroString同步出错文件数量2
task_uuidString比较任务uuid@guid

Response

名称类型必选简介Mock初始值Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString
Last update: 2/26/2024, 5:49:44 PM
Contributors: ganl