Compare commits

...
Author SHA1 Message Date
chenxing d99ce81cc0 refactor(file): 附件根目录对齐平台标准 FILE_PATH——优先级 FILE_PATH(共享 application-platform.yml 一份)>FILE_UPLOAD_PATH(notice 过渡键)>file.upload-path(本地开发)
build / build-push (push) Successful in 2m31s
其他子应用(userhome/userbase/flow-center)代码即读 FILE_PATH,各子应用值相同
(/data/upload),收敛到共享 application-platform.yml 一份后子应用无需再各自维护;
notice 的 FILE_WEB_PATH/UPLOAD_WEB_PATH_HTTP 为 projman 模板键,代码无消费点。
2026-10-10 16:04:31 +08:00
chenxing b96de59b6d docs(file): FILE_UPLOAD_PATH 注释改为配置文件顶层键口径(与 flow-center 的 FILE_PATH 同玩法,环境变量亦可)
build / build-push (push) Successful in 2m38s
2026-10-10 15:54:07 +08:00
2 changed files with 12 additions and 9 deletions
@@ -55,12 +55,14 @@ public class FileService implements IFileService {
/** /**
* 附件存储根目录(生产容器内 /data/upload,对应 projman 卷 /data/uploads/notice)。 * 附件存储根目录(生产容器内 /data/upload,对应 projman 卷 /data/uploads/notice)。
* 优先级:环境变量 FILE_UPLOAD_PATH(子应用平台新标准,projman 注入)> file.upload-path * 平台标准(与 userhome/userbase/flow-center 同款):FILE_PATH 各子应用值相同
* (application.yml 的 D:/data/upload,仅本地 Windows 开发用)> /data/upload 兜底。 * (/data/upload),统一收敛在共享配置 application-platform.yml 一份,子应用不再各自维护;
* 生产缺 FILE_UPLOAD_PATH 时曾回落到 D:/data/upload——Linux 下锚定为 /app/D:/data/upload * notice 曾走过渡键 FILE_UPLOAD_PATH(prod 配置 2026-10-10 已加,保留兼容);
* 写进容器可写层,每次重新部署文件即丢(2026-10 事故),故 prod 必须注入该环境变量。 * 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 String uploadPath;
private static final String DEFAULT_APP_TYPE = "notice"; private static final String DEFAULT_APP_TYPE = "notice";
+5 -4
View File
@@ -41,10 +41,11 @@ spring:
simple: simple:
auto-startup: false auto-startup: false
# 文件上传存储路径——仅供本地 Windows 开发兜底;生产以 projman 注入的环境变量 # 文件上传存储路径——仅供本地 Windows 开发兜底;生产读 FILE_PATH(平台统一,
# FILE_UPLOAD_PATH=/data/upload 为准(子应用平台新标准,卷 /data/uploads/notice 对应容器 /data/upload)。 # 共享配置 application-platform.yml 一份 /data/upload,子应用不再各自维护),
# 切勿在生产只依赖本键:历史教训是 Linux 容器把 D:/data/upload 锚定成 /app/D:/data/upload # notice 过渡键 FILE_UPLOAD_PATH(prod 配置已加)仍兼容。
# 写进容器可写层,每次更新部署附件全部丢失(2026-10)。 # 切勿在生产只依赖本键:历史教训是 Linux 容器把 D:/data/upload
# 锚定成 /app/D:/data/upload 写进容器可写层,每次更新部署附件全部丢失(2026-10)。
file: file:
upload-path: D:/data/upload upload-path: D:/data/upload