声明用途、大小、MIME、checksum
ARCHITECTURE DOSSIER · 02
资源、包与媒体交付
上传隔离、校验、晋级、下载票据与端侧验证
MEDIACODE + RUNTIME + QA短期 ticket 与大小/MIME 限制
upload capability、object claim、bounded package validation、promote、asset 与 download ticket
malware/policy verdict、definition revision 与 retry
版本、manifest、能力与 package/asset 引用
媒体准备、hash、分片、失败恢复
隔离上传与不可变资产
CRITICAL SEQUENCE
真实主链与事务边界
每一步都必须能回到调用方、契约、状态 owner 与失败证据;UI 只显示服务端已经确认的真值。
- 01
客户端计算 SHA-256 并提交 owner/tenant/class/name/size/MIME/idempotency intent
→ - 02
资源服务校验当前支持的 miniapp_package、大小、MIME 与 hash 并签发 exact-header S3 PUT
→ - 03
浏览器直传 private versioned quarantine bucket;业务 API 不经手资源字节
→ - 04
complete 单 claimant 核对对象版本、长度、S3 checksum 与下载重算 SHA-256
→ - 05
bounded validator 拒绝 path traversal、重复路径、特殊文件、单项/总量/压缩比越界与无效 manifest
→ - 06
独立 policy scanner TARGET 通过后复制到 asset/class/hash 不可变 key 并删除 quarantine
→ - 07
业务只保存 asset_id/hash/S3 version reference,消费者用短时 ticket 下载并复核 hash
INTERFACE REGISTER
跨项目接口与安全条件
producer、consumer、契约和 guard 同时登记;其中任何一列缺失都不能进入多团队并行开发。
UploadIntent {tenant,owner,class,name,size,mime,sha256,idempotency_key}reits-mediasubject + scope + resource grant TARGET; bounded class/MIME/size CURRENT
UploadCapability {asset_id,upload_id,put_url,headers,size,expires_at}Web / service adaptershort TTL + exact object key/MIME/length/checksum; URL never persisted
ValidationEvidence {entries,uncompressed_bytes,entrypoint,manifest}Promotionbounded ZIP only; not malware verdict
PackageManifest {version,asset_id,hash,capabilities}Miniapp Gatewayreview + immutable release + consumer hash
DownloadTicket {asset_id,url,expires_at}iOS / Webasset READY + short TTL; signed URL never stored/logged
STATE OWNERSHIP
数据真值与恢复
STOREMySQL schema in code · production absent
RETENTIONasset policy target
RECOVERYDB manifest + object inventory + drill
STOREprivate versioned S3 target
RETENTIONbounded pending/rejected policy target
RECOVERYexpired intent 重新上传
STOREprivate S3 + CloudFront target
RETENTIONrelease/reference lifecycle
RECOVERYcross-domain object inventory + manifest
STORELocal files now
RETENTION来源政策
RECOVERY迁移至 resource service
FAILURE MODEL
故障必须怎样收敛
SYMPTOM包或媒体不可验证
CONTAIN留在 quarantine,禁止发布
expected/actual hashSYMPTOM上传完成但资源不可发布
CONTAIN保留拒绝 reason/evidence;不生成 public/ticketable asset
validation evidence + policy verdictSYMPTOM重复 promote 或 processing 卡住
CONTAIN单 claimant;瞬时失败 release claim,幂等返回原结果
upload state + idempotency receiptSYMPTOM发布与下载失败
CONTAIN冻结新发布,已缓存版本继续
disk alert + package smokeQA RELEASE GATES
不是画完架构图就算完成
这些门禁连接 UI 状态、接口负向路径、运行证据与可恢复性;发布证据必须绑定 exact commit。
类型、大小、MIME、checksum、idempotency 和对象版本
服务端负向 + 并发测试
checksum 与签名在宿主端复核
iOS/Web E2E
quarantine 不可公开读取
安全回归
ZIP bomb/path traversal/duplicate/special entry 与 policy scanner
恶意样本矩阵
8 张 K15 资源/运营 UI 九态与证据分轨
visual + a11y + contract
对象/DB inventory 与隔离恢复
部署前 restore drill