模块采用典型的分层结构:`controller` 层仅做参数适配与流转发,全部调用 `api.FileApi` 门面;`service.impl.FileApiImpl` 实现核心业务(大小/黑名单校验、objectKey 生成、MinIO 读写、元数据落库、分片会话管理);`domain/entity/FileInfo` 通过 MyBatis-Plus + JPA 注解映射 `crm_file_info` 表,`mapper/FileInfoMapper` 继承基础 Mapper;`config.MinioConfig` 装配 MinioClient 并在启动时自动创建 bucket;`task.OrphanChunkCleanupTask` 基于 `@Scheduled` 定时清理孤儿临时分片。依赖方向单向向下:Controller → FileApi → Service → (MinioClient / RedisTemplate / IFileInfoService / KkFileViewClient),对外仅暴露 `FileApi` 接口供其他业务模块依赖。分片上传的会话状态存 Redis(key 前缀见 `FileConstants.UPLOAD_SESSION_KEY`),临时分片以 `chunks/{uploadId}/{序号}` 命名落在 MinIO,合并后由 `completeMultipart` 主动清理,失败路径由定时任务兜底。