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.
960 B
960 B
- 所有对外能力统一通过
FileApi接口暴露,Controller 和内部调用方不得绕过该门面直接访问底层实现。 - 错误处理使用
crm-base提供的BusinessErrorException、MissingParameterException、ResourceNotExistException,并通过FileConstants中的错误码常量统一管理。 - 文件 objectKey 遵循
{业务域}/{yyyy}/{MM}/{fileId}.{扩展名}格式,由buildObjectKey集中生成,不对业务模块暴露。 - 分片上传严格遵循 init → upload → complete 三段式协议,会话状态存 Redis,临时分片以
chunks/{uploadId}/{序号}命名于 MinIO,缺片校验以列举 MinIO 对象为准而非额外进度表。 - 流式操作(上传/下载)一律使用
InputStream并由调用方负责关闭,避免内存驻留大文件。 - 非致命异常(如 MinIO 删除失败、bucket 初始化失败)仅记录 warn/error 日志而不阻断主流程,保证容错性。