fix(file): 下载需登录,内联预览与缩略图默认公开

- /api/file/download/** 恒需登录,注册顺序排在公开模式之前
- 新增 file.public-preview(默认 true):内联预览 /api/file/*/* 与缩略图默认匿名
- file.public-dirs 保留为额外公开目录,语义限定在原图与缩略图
- 测试补三条:下载无白名单也需登录、内联默认公开、public-preview=false 时内联需登录
This commit is contained in:
Codex
2026-11-03 22:26:52 +08:00
parent b8c9c6c853
commit d65e8453f5
4 changed files with 127 additions and 49 deletions
+11 -7
View File
@@ -89,15 +89,19 @@ config:
upload-path: /Users/liangxin/Project/JAVA/tower-java/
local-upload-path: /Users/gxwebsoft/Documents/uploads/
# 文件访问白名单(spec #58):确需公开的资源目录,逗号分隔,相对 /api/file。
# file.public-dirs: cms-article,public
# 列进这里的目录,其原图 /api/file/<dir>/** 与缩略图 /api/file/thumbnail/<dir>/** 允许匿名读取;
# 下载接口 /api/file/download/** 永远需要登录。留空 = 所有文件都需要登录。
# 文件访问规则(spec #58)
# 下载接口 /api/file/download/** 永远需要登录,「取走原件」不再匿名。
#
# 注意:当前上传一律落在 /yyyyMMdd/ 日期目录(见 FileStorageService.store),
# 目录本身不区分公开/私有,所以生产要放开公开站点图片,只能按日期目录逐条登记,
# 或后续给上传链路加语义前缀。不要图省事写成 /api/file/**。
# 确需公开的内联资源(预览 /api/file/<dir>/<name> 与缩略图 /api/file/thumbnail/**):
# 默认 true,否则公开页面的配图会整片变成需要 token;置 false 则内联也需登录。
file:
public-preview: ${FILE_PUBLIC_PREVIEW:true}
# 额外公开目录(可选,逗号分隔,相对 /api/file):命中这些目录的原图与缩略图即使
# public-preview=false 也允许匿名读取。留空表示没有额外目录。
#
# 注意:当前上传一律落在 /yyyyMMdd/ 日期目录(见 FileStorageService.store),
# 目录本身不区分公开/私有;写日期目录等于把这些日期的全部文件公开,慎用。
# 也不要图省事写成 /api/file/**。
public-dirs: ${FILE_PUBLIC_DIRS:}
wx: