外观
资源文件
资源模块将文件上传到本地或对象存储,并保存名称、存储位置、相对路径、大小和 MD5 等文件记录。例如,应用接收附件后,将文件交给 MinIO 保存,再把返回的记录 ID 关联到业务单据。
资源模块负责文件与元数据;业务单据关联、用户归属和访问授权由应用负责。它与下载中心没有自动联动:需要下载列表时,由应用将资源地址登记到下载中心。
从哪里开始
- 快速开始:使用 MinIO 完成上传、查询记录和核对文件。
- 上传与直传签名:选择经应用上传或客户端直传,理解 MD5 复用、业务路由与回调。
- 存储配置与访问:配置本地及五种对象存储适配器、多源路由和私有资源访问。
- 文件记录管理:查询、登记、删除元数据,以及给业务对象回填文件信息。
选择接入模块
以下运行时依赖的 groupId 均为 com.own.business,版本由 com.own:springboot-business-dependencies 管理。
| 需要的能力 | artifactId | 依赖说明 |
|---|---|---|
| 应用内部上传、文件记录服务 | springboot-business-resource-business | 传递依赖 Common、Core 和 Store API |
| 上传、签名与回调 HTTP 接口 | springboot-business-resource-controller-app | 传递依赖 Business |
| 文件记录管理接口 | springboot-business-resource-controller-admin | 传递依赖 Business,不自动引入 App 接口 |
| MinIO、阿里云、华为、七牛、火山适配器 | springboot-business-resource-module-<供应商> | 后缀分别为 minio、aliyun、huawei、qiniu、volc;当前均传递依赖 App Controller 和 Core |
本地实现包含在 Core 中。springboot-business-resource 和 springboot-business-resource-module 是聚合 POM;前者同时提供依赖管理,不是运行时全量 JAR。当前源码没有 springboot-business-resource-module-all 子模块,不应根据 POM 中遗留的版本管理项选择该依赖。
接入前要了解的边界
| 事项 | 当前行为 |
|---|---|
| App 身份 | 整个 AppResourceController 标记 @LoginIgnore;不是“当前登录用户的文件接口” |
| 记录作用域 | 没有归属用户或工作空间字段及过滤;创建人字段只是审计信息 |
| 首次上传 | 默认 MD5 复用存在未命中异常,快速开始显式采用 REPEAT,详见复用语义 |
| Mapper 装配 | 模块默认扫描路径与实际 Mapper 包不一致,应用需补充扫描,详见快速开始 |
| 存储能力 | 各适配器的直传、私有读、回调能力不同,详见能力矩阵 |
| 查询与删除 | 管理端字段筛选尚未实现;删除物理移除数据库记录,不删除实际文件 |
模块没有自动清理、上传任务调度、用户配额或统一文件类型白名单。应用应根据公开上传、业务附件或私有文件场景,配置实际入口和文件访问规则。
按文件查阅方法
重点文件与方法逐项说明核心类、接口和方法重载的用途、参数、返回值、调用示例与注意事项,并链接到公开仓库对应源码。