TARGETF4B2 PARTIALQA 0/5 VERIFIEDR14 · 15/21 PASS COMPLETEAdmin · 为应用版本、内容和业务对象创建不可变资源的开发者与运营人员

资源上传与预检

先声明 owner、用途、大小、MIME、SHA-256 和幂等键,再通过短时能力直传隔离区

/ops/media/uploads/newplatform-operations
R14 · KNIFE 15 / 21

资源上传与预检 · 运营证据级页面任务包

在不经过应用服务器承载文件字节的前提下,绑定 owner、用途、大小、MIME、SHA-256、幂等键与短时直传能力。

TARGET ROUTE

/ops/media/uploads/new

CURRENT SOURCE

reits-media internal/httpapi + internal/service

CURRENT API

POST /v1/uploads · POST /v1/uploads/{upload_id}/complete

WORK MODE

declare-direct-upload · K15

ENTRY

应用版本、内容对象或平台运营的新增资源动作。

SUCCESS OUTPUT

UploadIntent/AssetReceipt 返回;未部署时明确 unavailable,不生成伪 capability。

INTERACTION MODEL

Resource grant → declare → client hash → short-lived PUT → exact complete claim → receipt。

A11Y

步骤、校验错误、进度、过期与拒绝原因可朗读;键盘可完成且失败不丢声明输入。

TELEMETRY

upload_intent_view · capability_result · complete_result;文件名按策略脱敏,token、URL、headers、hash payload 不入事件。

CURRENT SOURCE + RUNTIME3 REPOS SYNCED · EC2 2026-07-18
  • reits-media main 与 origin/main 均为 db8c55a;13 个 Go 文件、4 个 Go 测试文件、1 个 SQL migration、1 个 workflow、7 个 HTTP 路由,本次 go test ./... 与 go vet ./... 均通过。
  • 代码实现 S3 直传、隔离 object version、exact length/checksum、bounded ZIP validation、不可变 promotion 与 CloudFront 短时票据;validator 不是 malware scanner。
  • EC2 未发现 reits-media service、container、Nginx vhost 或 listener;CURRENT 只有 service-token 保护的 create/complete/get-by-id/download-ticket,没有人类资源授权、列表、引用、删除或 reviewer queue。
media db8c55a · proxy healthy · Loki/Grafana 200 · root 63% · media service/container/vhost/listener 0/0/0/0
IMPLEMENTATION GAPPRODUCT QA 0 / 5
  • 生产 service/vhost/bucket/KMS/CDN/DNS 与 consumer smoke 均未证明。
  • CURRENT 单一 service token 不能代表 operator subject/scope/resource grant,也没有 quota/purpose policy。
  • 页面人物、应用、文件、数量、hash 与 receipt 都是 STRUCTURE SAMPLE。
CODE PASS ≠ DEPLOYED · HEALTHY ≠ PRODUCT AVAILABLE · BACKUP SUCCESS ≠ RESTORE PROVEN
72-STATE PROGRAM / THIS SCREEN

九态必须改变对象、证据 lane、授权、查询、确认或回执区域,不用通用遮罩冒充真实完成

QA 0 / 5 VERIFIED
READYUploadIntent 证据可读

UploadIntent

R14-MEDIA-UPLOAD-READY→ 请求短时上传能力
LOADING正在核对 UploadIntent

UploadIntent evidence lanes

R14-MEDIA-UPLOAD-LOADING→ 保持当前范围
EMPTY当前范围没有 UploadIntent

query result / safe next step

R14-MEDIA-UPLOAD-EMPTY→ 调整范围或返回
PARTIAL ERRORUploadIntent 部分证据源失败

failed evidence lane only

R14-MEDIA-UPLOAD-PARTIAL→ 只重试失败来源
ERRORUploadIntent 读取失败

safe diagnostic

R14-MEDIA-UPLOAD-ERROR→ 重新读取
OFFLINEUploadIntent 离线只读

bounded snapshot

R14-MEDIA-UPLOAD-OFFLINE→ 查看快照证据
FORBIDDENUploadIntent 被资源授权拒绝

authorization decision

R14-MEDIA-UPLOAD-FORBIDDEN→ 返回安全页面
CONFIRMUploadIntent 高影响动作确认

native confirmation

R14-MEDIA-UPLOAD-CONFIRM→ 确认或取消
SUCCESSUploadIntent 命令已返回回执

receipt / verification

R14-MEDIA-UPLOAD-SUCCESS→ 打开回执与验证
R14 BOUNDARY本刀只完成 8 张资源/可观测页面、72 个页面状态以及 media source/EC2 runtime/target control plane 三轨事实;不调用真实上传、签票、删除、隔离处置、事故发布、审计导出或恢复命令,不读取日志 payload 与 secret,不把代码测试、healthy 容器、200 readiness、成功备份或 contract 脚本冒充已部署 Media、产品可用性、真实 Incident/Audit 或可恢复性证明。
UI STUDIOplatform-media-upload
Admin1440 × 900100%
100%
/ops/media/uploads/new
TARGET UI1440 × 900FIT 100%
R14 DESIGN CANDIDATECURRENT RUNTIME + CODE EVIDENCE + TARGET CONTROL PLANEreits-media db8c55a · EC2 snapshot 2026-07-18
RESOURCE & OBSERVABILITY / platform-media-upload

资源上传与预检

先声明 owner、用途、大小、MIME、SHA-256 和幂等键,再通过短时能力直传隔离区

CONTROL PLANECODE ONLYEC2 service / vhost absent
ASSET CLASS01miniapp_package only
UPLOAD PATHDIRECTbrowser → private quarantine
EC2 BYTESZEROproduction invariant
DIRECT-TO-S3 CONTRACTPrepare immutable package uploadPROD NOT DEPLOYED
  1. 1Declaretype · size · SHA-256
  2. 2Uploadexact headers · expiry
  3. 3Completeclaim · validate · promote
  4. 4Bindasset ID · version
↑
Exact bytes ready for direct uploadURL and required headers are short-lived; neither is stored in business data or logs.
CHECKSUM READY
REFERENCE VIEWPORT1440 × 900Desktop first · responsive
PRIMARY TASK计算 checksum主操作、权限与完成反馈必须同屏可验证
DATA CONTRACTSubjectSessionready / loading / empty / error 使用同一 fixture
ACCESSIBILITYKeyboard + WCAG AA焦点顺序、可读名称、对比度进入 UI CI
VISUAL BASELINETARGET · 2026-07-18桌面/移动、浅色/错误态按稳定 Screen ID 留档

IMPLEMENTATION MAP

目标定义与下一轮逐页细化入口

当前处于 B1/B2:可以拆出架构、设计、交互和 QA 任务,但完成 D01–D12、通过 B3/B4 之前,不得宣称页面已经可以照稿实现。

01

页面区域

  • 运营侧栏
  • K15 事实条
  • 四步上传流程
  • Owner/tenant 上下文
  • 文件与 checksum
  • 直传进度
  • 预检证据
02

用户动作

  • 计算 checksum
  • 请求上传能力
  • 直传精确字节
  • 完成上传
  • 取消 intent
  • 查看 receipt
03

必须状态

  • 运营证据已就绪
  • 多源证据聚合中
  • 当前范围为空
  • 部分证据源失败
  • 运营视图读取失败
  • 离线快照只读
  • 资源或环境权限拒绝
  • 高风险命令确认
  • 命令与证据回执完成
04

数据契约

  • SubjectSession
  • ResourceGrant
  • UploadIntent
  • UploadCapability
  • DirectPutProgress
  • CompleteUpload
  • AssetReceipt

TARGET MODULES

目标页面必须交付的模块

  1. 01identity/resource authorization
  2. 02upload intent
  3. 03client checksum
  4. 04direct S3 PUT
  5. 05completion claim
  6. 06promotion receipt

PRODUCT ROUTE INDEX

REITs Platform · Resource & Observability 的 8 个稳定 Screen ID

同一产品内的页面共享 token、导航和状态语言,但每个 Screen ID 保留自己的字段、数据契约和 QA 基线。

01
资源上传与预检/ops/media/uploads/new
Admin
02
隔离验证与晋级/ops/media/quarantine
Admin
03
不可变资源库/ops/media/assets
Admin
04
平台服务状态/status · /ops/status
Admin
05
日志与关联检索/ops/logs
Admin
06
Incident 指挥与时间线/ops/incidents/:incidentId
Admin
07
跨域审计事件详情/ops/audit/:eventId
Admin
08
隔离恢复演练/ops/recovery/drills/:drillId
Admin