From d99ce81cc01e383f069fea70b40fcdebd7411ea5 Mon Sep 17 00:00:00 2001 From: chenxing Date: Sat, 10 Oct 2026 16:04:31 +0800 Subject: [PATCH] =?UTF-8?q?refactor(file):=20=E9=99=84=E4=BB=B6=E6=A0=B9?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E5=AF=B9=E9=BD=90=E5=B9=B3=E5=8F=B0=E6=A0=87?= =?UTF-8?q?=E5=87=86=20FILE=5FPATH=E2=80=94=E2=80=94=E4=BC=98=E5=85=88?= =?UTF-8?q?=E7=BA=A7=20FILE=5FPATH(=E5=85=B1=E4=BA=AB=20application-platfo?= =?UTF-8?q?rm.yml=20=E4=B8=80=E4=BB=BD)>FILE=5FUPLOAD=5FPATH(notice=20?= =?UTF-8?q?=E8=BF=87=E6=B8=A1=E9=94=AE)>file.upload-path(=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E5=BC=80=E5=8F=91)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 其他子应用(userhome/userbase/flow-center)代码即读 FILE_PATH,各子应用值相同 (/data/upload),收敛到共享 application-platform.yml 一份后子应用无需再各自维护; notice 的 FILE_WEB_PATH/UPLOAD_WEB_PATH_HTTP 为 projman 模板键,代码无消费点。 --- .../yunhai/notice/service/impl/FileService.java | 14 +++++++------- src/main/resources/application.yml | 7 ++++--- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/yunhai/notice/service/impl/FileService.java b/src/main/java/com/yunhai/notice/service/impl/FileService.java index 2b95e4c..92b2018 100644 --- a/src/main/java/com/yunhai/notice/service/impl/FileService.java +++ b/src/main/java/com/yunhai/notice/service/impl/FileService.java @@ -55,14 +55,14 @@ public class FileService implements IFileService { /** * 附件存储根目录(生产容器内 /data/upload,对应 projman 卷 /data/uploads/notice)。 - * 优先级:属性 FILE_UPLOAD_PATH(子应用平台新标准,与其他子应用同款加在 - * application-prod.yml 顶层:FILE_UPLOAD_PATH: /data/upload;同名环境变量亦可) - * > file.upload-path(application.yml 的 D:/data/upload,仅本地 Windows 开发用) - * > /data/upload 兜底。 - * 生产缺 FILE_UPLOAD_PATH 时曾回落到 D:/data/upload——Linux 下锚定为 /app/D:/data/upload - * 写进容器可写层,每次重新部署文件即丢(2026-10 事故),故生产配置必须带该键。 + * 平台标准(与 userhome/userbase/flow-center 同款):FILE_PATH 各子应用值相同 + * (/data/upload),统一收敛在共享配置 application-platform.yml 一份,子应用不再各自维护; + * notice 曾走过渡键 FILE_UPLOAD_PATH(prod 配置 2026-10-10 已加,保留兼容); + * file.upload-path(application.yml 的 D:/data/upload)仅本地 Windows 开发用。 + * 教训:生产曾因键名不匹配回落到 D:/data/upload——Linux 锚定为 /app/D:/data/upload + * 写进容器可写层,每次重新部署文件即丢(2026-10 事故)。 */ - @Value("${FILE_UPLOAD_PATH:${file.upload-path:/data/upload}}") + @Value("${FILE_PATH:${FILE_UPLOAD_PATH:${file.upload-path:/data/upload}}}") private String uploadPath; private static final String DEFAULT_APP_TYPE = "notice"; diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 4d30471..10cdb7a 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -41,9 +41,10 @@ spring: simple: auto-startup: false -# 文件上传存储路径——仅供本地 Windows 开发兜底;生产在 application-prod.yml 顶层加 -# FILE_UPLOAD_PATH: /data/upload(子应用平台新标准,与 flow-center 的 FILE_PATH 同玩法, -# 同名环境变量亦可),切勿在生产只依赖本键:历史教训是 Linux 容器把 D:/data/upload +# 文件上传存储路径——仅供本地 Windows 开发兜底;生产读 FILE_PATH(平台统一, +# 共享配置 application-platform.yml 一份 /data/upload,子应用不再各自维护), +# notice 过渡键 FILE_UPLOAD_PATH(prod 配置已加)仍兼容。 +# 切勿在生产只依赖本键:历史教训是 Linux 容器把 D:/data/upload # 锚定成 /app/D:/data/upload 写进容器可写层,每次更新部署附件全部丢失(2026-10)。 file: upload-path: D:/data/upload