Files
sexygoat 950520635d
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 3m54s
feat: 文件下载
2026-04-30 18:04:01 +08:00

3.2 KiB
Raw Permalink Blame History

Change: 为后台任务页与操作审计日志补充文件下载入口

Why

当前后台已经具备对象存储上传能力和下载 URL 获取接口,但与“下载文件”相关的运营入口仍然缺失两块关键能力:

  • IoT 卡任务页和设备任务页虽然展示了导入任务记录,但操作列里没有“下载文件”入口,运营无法直接回看任务原始导入文件。
  • 资产操作审计日志已经会显示 文件存储键 / file_key,但仍然只是纯文本,无法直接从日志里发起下载。

同时,本次需求明确要求这些下载入口按页面上下文拆分权限,不允许任务页和三个审计日志入口共用同一个按钮权限编码。

如果不补齐这些入口,后台用户仍然需要依赖复制 file_key、跳外部系统或人工排查对象存储文件,审计与任务追溯链路会继续断裂。

本提案仅覆盖后台管理端admin能力不包含 C 端页面和 C 端接口消费逻辑。

What Changes

  • 为后台任务管理增加原始导入文件下载入口:
    • 在 IoT 卡任务列表操作列增加“下载文件”
    • 在设备任务列表操作列增加“下载文件”
    • 两个任务页分别使用独立按钮权限编码
  • 为后台资产操作审计日志增加基于 file_key 的下载入口:
    • 当日志变更内容包含 文件存储键 / file_key 时,在对应值后追加“下载文件”
    • 资产详情页、IoT 卡列表审计日志弹窗、设备列表审计日志弹窗分别使用独立按钮权限编码
    • 共享日志组件需要支持由不同入口传入对应的下载权限上下文
  • 明确复用现有下载接口:
    • 所有下载入口统一通过 POST /api/admin/storage/batch-download-urls 获取预签名下载 URL
    • 本次不新增新的对象存储下载 API
  • 范围约束:
    • 不改造上传流程
    • 不扩展为“文件中心”或批量多文件下载能力
    • 不顺带统一现有全部权限命名历史差异,仅为本次新增入口定义可审查的权限编码

Impact

  • Affected specs:
    • admin-file-download
  • Affected code:
    • src/api/modules/storage.ts
    • src/views/asset-management/task-management/iot-card-task/index.vue
    • src/views/asset-management/task-management/device-task/index.vue
    • src/views/asset-management/asset-information/components/OperationLogsCard.vue
    • src/components/business/OperationLogsDialog.vue
    • src/views/asset-management/asset-information/index.vue
    • src/views/asset-management/iot-card-management/index.vue
    • src/views/asset-management/device-list/index.vue
    • src/types/api/card.ts
    • src/types/api/device.ts
  • Dependencies:
    • 依赖现有 POST /api/admin/storage/batch-download-urls 可为单个 file_key 返回可直接下载的预签名 URL
    • 与活跃变更 update-admin-asset-device-signal-and-audit-logs 存在 OperationLogsCard.vue 共享组件交集,实施前需要基于其最新状态合并
    • 导入任务列表/详情接口需要提供可下载所需的 file_key;如果当前接口尚未返回,实施阶段需要同步补齐契约
  • Breaking changes:
    • 无外部接口路径和 HTTP 方法层面的破坏性变更;主要是后台入口、权限和前端类型契约的增量扩展