Skip to content

feat(v2): artifact 后端契约与 Gateway S3 上传/下载链路 #5

Description

@monster-echo

背景

Console / Mobile / Harmony 端需要能看到 session 产生的文件(截图、日志、生成物等),并支持上传 / 下载。已有契约脚手架:

  • src/Shared/CortexTerminal.Contracts/Sessions/ArtifactDtos.cs(ArtifactInfo / CreateArtifactRequest / UploadUrlResponse 等)
  • src/Shared/CortexTerminal.Contracts/Streaming/ArtifactSyncFrames.cs(NotifyArtifactUploadedFrame / ArtifactSyncedFrame / ArtifactChangedEvent)

范围

In

  • 把现有 DTO 接入 Gateway:POST /sessions/{id}/artifacts(创建 + 拿签名上传 URL)、POST /artifacts/{id}/complete(上报 SHA256 完成 ack)、GET /artifacts/{id}/download(签名下载 URL)
  • artifact 元数据持久化(Postgres / 现有 storage)
  • S3 兼容存储后端(MinIO / R2 / AWS S3),生命周期(ExpiresAt)与状态机(pending → ready → deleted)
  • artifact 变更通过 SignalR 推送 ArtifactChangedEvent 给已订阅 session 的客户端
  • 删除 artifact(soft delete,标记 deleted,触发 S3 清理)

Out

验收

  • 客户端能拿到签名 URL 并直传 S3
  • Gateway 能校验 SHA256 并把 artifact 状态从 pending → ready
  • SignalR ArtifactChangedEvent 正确推送
  • 单元测试覆盖状态机、签名 URL 生成、SHA256 校验

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions