weicw-dshsa
|
f5a89634c4
|
feat(file): 文件存储接入 RustFS(S3),修正文件外链域名与路径
文件上传从本地磁盘改为可切换的对象存储(默认 s3,type 改回 local 即退回原行为):
- 新增 common.core.storage 包:ObjectStorage 接口 + S3ObjectStorage(minio 8.5.17)
+ NoopObjectStorage + FileStorageService + StorageConfig + StoredFile;
key 规则沿用 file/yyyyMMdd/uuid.ext、缩略图 file/thumbnail/...,桶内结构对齐旧磁盘目录
- 读取仍走后端代理 GET /api/file/**:s3 模式下首次读取物化到本地 cache-path 再返回,
对外 URL 不变;历史本地文件一律作废,不做回退兼容
- ConfigProperties 增加 storage 配置块,endpoint/access-key/secret-key 支持环境变量覆盖
(RUSTFS_ENDPOINT / RUSTFS_ACCESS_KEY / RUSTFS_SECRET_KEY),配置非法时启动即失败
- FileRecordService.deleteFileAsync 改为按 path 删除,本地与对象存储同时清理
- pom 固定 okhttp3.version=4.12.0、kotlin.version=1.9.25:Spring Boot 2.5.4 默认的
okhttp 3.14.9 与 minio 所需的 okhttp 4.12.0 冲突,会导致启动即
NoClassDefFoundError: okhttp3/ConnectionPool
同时修正文件外链拼接(以下均为改造前就存在的问题):
- application-prod.yml:server-url / file-server 由失效的 tuanwei-api.gxwebsoft.com
改为生产实际域名 https://twai-api.gxmu.edu.cn(与 admin .env.production、
uniapp request.js 一致),此前上传返回的 url 指向旧域名导致访问不到
- FileController 抽出 fileBaseUrl(),分页/列表原来漏了 /api/file 前缀
- OpenFileController 同样补 /api/open/file 前缀
- TzbcyMaterialServiceImpl 下载链接补 /api/file/download
|
2026-10-21 23:11:45 +08:00 |
|