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.
6 lines
960 B
6 lines
960 B
|
1 month ago
|
- 所有对外能力统一通过 `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 日志而不阻断主流程,保证容错性。
|