You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1003 B
1003 B
模块采用典型的分层结构: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 主动清理,失败路径由定时任务兜底。