Files
photo-live/docs/diagrams/04-upload-recovery.mmd
T
浅念 d973c714f0 chore: init repository skeleton
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-17 16:13:49 +08:00

26 lines
1.5 KiB
Plaintext

flowchart TB
CAP["拍摄成功或选择照片"] --> PREP["准备中<br/>获取源文件 检查空间 本地复制"]
PREP -->|失败| PF["准备失败<br/>保留原因和恢复入口"]
PF -->|重新获取或释放空间| PREP
PREP -->|成功| QUEUE["持久化队列<br/>固定账号 相册 分类 任务 ID"]
QUEUE --> AUTH{"账号权限与<br/>上传开关有效?"}
AUTH -->|否| WAIT["等待恢复权限或开放上传<br/>也可明确取消任务"]
WAIT -->|条件恢复| AUTH
AUTH -->|是| UP["原生系统传输至 OSS 暂存区"]
UP -->|断网或授权过期| RETRY["保存任务<br/>等待网络或续签后重试"]
RETRY --> AUTH
UP -->|系统中止或强制退出| REOPEN["保留可恢复记录<br/>系统允许或下次启动后校准"]
REOPEN --> AUTH
UP -->|文件传输完成| CONFIRM["服务端核验与幂等确认<br/>固定不可覆盖的正式原图"]
CONFIRM -->|失败| CF["确认失败或待补偿<br/>核验已有对象 不盲目重传"]
CF --> CONFIRM
CONFIRM --> JOB["处理图片与生成浏览资源"]
JOB -->|失败| JF["记录处理失败<br/>有限重试或人工重试"]
JF --> JOB
JOB -->|完成| READY["处理就绪"]
READY --> CHECK{"相册公开且<br/>照片未隐藏删除?"}
CHECK -->|是| SYNC["元数据同步海外<br/>幂等 版本检查 定时补漏"]
SYNC --> LIVE["海外资源可用后可见<br/>通知观众并进入轮播"]
CHECK -->|否| INTERNAL["内部保留<br/>原图继续长期保存"]
INTERNAL -->|公开状态变化后检查| CHECK