fix(file): 附件存储根目录优先读平台标准环境变量 FILE_UPLOAD_PATH——修复生产附件随容器重建丢失
build / build-push (push) Successful in 1m27s
build / build-push (push) Successful in 1m27s
生产容器 env 只有旧 dotnet 风格 FILE_PATH 顶层键(Spring 不识别),@Value(${file.upload-path})
回落到打包默认 D:/data/upload,Linux 下被锚定为 /app/D:/data/upload 写进容器可写层,
每次 projman 重新部署附件全部丢失(2026-10 事故,卷里仅剩 9/1 前的 3 个文件)。
新优先级:FILE_UPLOAD_PATH 环境变量(子应用平台新标准,projman 注入 /data/upload)
> file.upload-path(application.yml,仅本地 Windows 开发)> /data/upload 兜底。
deploy/notice.yaml 与 docker-compose.notice.yml 文档块同步更新。
This commit is contained in:
@@ -53,7 +53,14 @@ public class FileService implements IFileService {
|
||||
@Autowired
|
||||
private UpFileRepository upFileRepository;
|
||||
|
||||
@Value("${file.upload-path}")
|
||||
/**
|
||||
* 附件存储根目录(生产容器内 /data/upload,对应 projman 卷 /data/uploads/notice)。
|
||||
* 优先级:环境变量 FILE_UPLOAD_PATH(子应用平台新标准,projman 注入)> file.upload-path
|
||||
* (application.yml 的 D:/data/upload,仅本地 Windows 开发用)> /data/upload 兜底。
|
||||
* 生产缺 FILE_UPLOAD_PATH 时曾回落到 D:/data/upload——Linux 下锚定为 /app/D:/data/upload
|
||||
* 写进容器可写层,每次重新部署文件即丢(2026-10 事故),故 prod 必须注入该环境变量。
|
||||
*/
|
||||
@Value("${FILE_UPLOAD_PATH:${file.upload-path:/data/upload}}")
|
||||
private String uploadPath;
|
||||
|
||||
private static final String DEFAULT_APP_TYPE = "notice";
|
||||
|
||||
@@ -41,7 +41,10 @@ spring:
|
||||
simple:
|
||||
auto-startup: false
|
||||
|
||||
# 文件上传存储路径(Docker 部署时与 volume 挂载一致)
|
||||
# 文件上传存储路径——仅供本地 Windows 开发兜底;生产以 projman 注入的环境变量
|
||||
# FILE_UPLOAD_PATH=/data/upload 为准(子应用平台新标准,卷 /data/uploads/notice 对应容器 /data/upload)。
|
||||
# 切勿在生产只依赖本键:历史教训是 Linux 容器把 D:/data/upload 锚定成 /app/D:/data/upload
|
||||
# 写进容器可写层,每次更新部署附件全部丢失(2026-10)。
|
||||
file:
|
||||
upload-path: D:/data/upload
|
||||
|
||||
|
||||
Reference in New Issue
Block a user