@startuml xlog_server_seq box "log操作平台" #Transparent participant xlog操作平台前端 participant xlog操作平台后台服务 end box box "业务服务" #Transparent participant 命令下发服务 participant 鉴权服务 end box box "客户端" #Transparent participant client end box box "XlogServer" #Transparent participant xlog_server participant 临时缓存文件 participant 本地存储 end box group 触发客户端上传操作 xlog操作平台前端 -> xlog操作平台后台服务: 操作发送[gid,userid] xlog操作平台前端 <-- xlog操作平台后台服务: 等待上传成功状态 xlog操作平台后台服务 -> 命令下发服务: 发送需要上传[gid,userid] 命令下发服务 -> client: 上线后发送上传命令 alt 日志存在 loop 直到文件完整 client -> xlog_server: 初始化/根据剩余范围数据上传 xlog_server -> 鉴权服务: 发送Token确权 鉴权服务 --> xlog_server: 确认权限 alt 确权成功 xlog_server -> 临时缓存文件: 写入范围数据块 临时缓存文件 --> xlog_server: 文件完成的进度和剩余需要数据范围 xlog_server --> client: 返回剩余数据范围/文件状态(完成?) xlog_server -> 本地存储: 文件完整后保存 else 失败返回权限错误代码 break 上传操作停止 xlog_server --> client: 无效token end end end xlog_server -> xlog操作平台后台服务: 发送上传成功状态 xlog操作平台后台服务 -> xlog操作平台前端: 更新上传状态 else 日志不存在 client -> xlog_server: 日志文件不存在 xlog_server -> xlog操作平台后台服务: 日志不存在 xlog操作平台后台服务 -> xlog操作平台前端: 更新上传文件日志不存在状态 end end group xlog查询操作 #Transparent xlog操作平台前端 -> xlog操作平台后台服务: 查询文件信息 xlog操作平台后台服务 -> 本地存储: 查询文件信息 本地存储 --> xlog操作平台后台服务: 返回文件信息和相关下载路径 xlog操作平台后台服务 --> xlog操作平台前端: 返回相关信息 end @enduml