datai/docs/archive/prompts/030-contentdocument-upload-download.md

6.3 KiB
Raw Permalink Blame History

Prompt First 模板 - ContentDocument/ContentVersion 文件上传下载功能

输入引用

引用相关的 docs 文档链接:

Context Maps

强制列出本次 Prompt 依赖的 Canvas 文件:

目标

在 datai-salesforce-integration 模块实现 Salesforce ContentDocument/ContentVersion 对象的文件上传下载功能,使用 REST API + Multipart/form-data 方式,支持最大 2GB 文件,使用流式处理避免内存溢出。

具体目标:

  1. 引入 Apache HttpClient 依赖httpclient 4.5.13、httpmime 4.5.13
  2. 实现 ContentVersionUploadStrategy 类,实现 FileUploadStrategy 接口
  3. 实现 ContentVersionDownloadStrategy 类,实现 FileDownloadStrategy 接口
  4. 实现 ContentVersionFileService 接口
  5. 实现 ContentVersionFileServiceImpl 实现类
  6. 使用流式处理避免内存溢出
  7. 使用策略模式封装上传下载逻辑
  8. 为所有类编写单元测试,确保测试覆盖率 ≥ 90%
  9. 确保代码符合项目编码规范,通过 SonarQube、Checkstyle、SpotBugs 检查

输出格式

指定期望的输出格式:

  • 代码示例Java 代码
  • 代码结构
    • datai-salesforce-integration/src/main/java/com/datai/integration/strategy/impl/ContentVersionUploadStrategy.java
    • datai-salesforce-integration/src/main/java/com/datai/integration/strategy/impl/ContentVersionDownloadStrategy.java
    • datai-salesforce-integration/src/main/java/com/datai/integration/service/ContentVersionFileService.java
    • datai-salesforce-integration/src/main/java/com/datai/integration/service/impl/ContentVersionFileServiceImpl.java
    • datai-salesforce-integration/pom.xml添加 Apache HttpClient 依赖)
  • 测试代码JUnit 5 + Mockito
  • 文档结构Markdown

约束

列出使用此提示词时的约束条件:

  • 技术栈限制:必须基于现有的 Spring Boot 3 技术栈
  • 架构约束:必须遵循 Authentication.canvas 中定义的架构和调用关系
  • 模块约束:必须在 datai-salesforce-integration 模块下实现
  • 认证约束:必须使用 SessionManager 进行会话管理和自动重新登录
  • API约束:必须使用 Salesforce REST API
  • 文件大小约束:单个文件大小最大 2GB
  • 内存约束:必须使用流式处理避免内存溢出
  • 依赖约束:需要引入 Apache HttpClient 依赖httpclient 4.5.13、httpmime 4.5.13
  • 文档约束:必须遵循 SSOT 方法论
  • 设计模式约束:必须使用策略模式封装上传下载逻辑
  • 性能约束:大文件上传下载不影响系统响应
  • 安全约束:必须使用流式处理避免内存泄漏

Rule Set

"请严格参考 @Authentication.canvas 中的状态机转移逻辑,不要自行发挥。"

具体规则

  • 必须使用 Canvas 中定义的类名和方法名
  • 必须遵循 Canvas 中定义的调用关系
  • 必须参考 Canvas 中的流程图逻辑
  • 必须使用 SessionManager 进行会话管理和自动重新登录
  • 必须使用现有的认证模块进行 OAuth 认证
  • 必须遵循现有的异常处理机制
  • 必须遵循现有的日志记录规范
  • 必须使用 RESTConnection 处理 REST API 调用
  • 必须使用策略模式封装上传下载逻辑
  • 必须使用流式处理处理大文件
  • 必须使用 Apache HttpClient 进行 HTTP 调用
  • 必须使用 Multipart/form-data 格式上传文件

验收标准

定义验证输出质量的具体标准:

  • 功能完整性

    • ContentDocument/ContentVersion 文件上传下载功能能够正常工作
    • 支持指定组织配置 ID
    • 支持指定 FirstPublishLocationId可选
    • 支持指定文件名Title 和 PathOnClient
    • 上传成功返回 ContentVersion ID
    • 下载成功返回文件信息
    • 支持大文件上传下载(最大 2GB
  • 性能指标

    • 文件上传下载不影响系统响应
    • 大文件处理性能良好(特别是 2GB 文件)
    • 流式处理有效避免内存溢出
    • 内存使用稳定,无内存泄漏
  • 代码规范性

    • 代码符合项目编码规范,有清晰的注释
    • 使用策略模式封装上传下载逻辑
    • 遵循单一职责原则和开闭原则
    • 通过 SonarQube、Checkstyle、SpotBugs 检查
  • 可维护性

    • 代码结构清晰,易于扩展和维护
    • 配置与代码分离,易于调整
    • 依赖管理清晰,易于升级
  • 可测试性

    • 代码易于单元测试和集成测试
    • 提供完整的测试用例覆盖
    • 单元测试覆盖率 ≥ 90%

风险

识别使用此提示词可能带来的风险:

  • 输出质量风险:流式处理实现不当可能导致内存泄漏
  • 技术实现风险Apache HttpClient 依赖可能与其他依赖冲突
  • 时间成本风险:流式处理实现复杂,可能延长开发周期
  • 性能风险:大文件上传下载性能不佳
  • 测试风险:大文件上传下载测试耗时较长,可能延长测试周期
  • 依赖风险Apache HttpClient 依赖版本不兼容

使用记录

日期 使用场景 输入参数 输出结果 反馈 改进措施
2026-01-19 实现 ContentDocument/ContentVersion 文件上传下载功能 REQ-011-3 需求文档、0029 ADR 文档、参考代码 ContentVersionUploadStrategy、ContentVersionDownloadStrategy、ContentVersionFileService、ContentVersionFileServiceImpl 待评估 待评估