修复 swagger 文档中字段名为中文的 bug,并将 prod 环境的 swagger 默认禁用。

This commit is contained in:
zhaojun
2025-08-03 15:22:56 +08:00
parent df4a6ba264
commit c4a241a96d
76 changed files with 578 additions and 585 deletions
-10
View File
@@ -161,16 +161,6 @@
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.5.0</version>
<exclusions>
<exclusion>
<groupId>org.webjars</groupId>
<artifactId>swagger-ui</artifactId>
</exclusion>
<exclusion>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-ui</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 工具类 -->
@@ -11,16 +11,16 @@ import lombok.Data;
@Data
public class PageQueryRequest {
@Schema(name="分页页数")
@Schema(title="分页页数")
private Integer page = 1;
@Schema(name="每页条数")
@Schema(title="每页条数")
private Integer limit = 10;
@Schema(name="排序字段")
@Schema(title="排序字段")
private String orderBy = "create_date";
@Schema(name="排序顺序")
@Schema(title="排序顺序")
private String orderDirection = "desc";
}
@@ -20,19 +20,19 @@ public class AjaxJson<T> implements Serializable {
public static final String CODE_SUCCESS = "0"; // 成功状态码
@Schema(name = "业务状态码,0 为正常,其他值均为异常,异常情况下见响应消息", example = "0")
@Schema(title = "业务状态码,0 为正常,其他值均为异常,异常情况下见响应消息", example = "0")
private final String code;
@Schema(name = "响应消息", example = "ok")
@Schema(title = "响应消息", example = "ok")
private String msg;
@Schema(name = "响应数据")
@Schema(title = "响应数据")
private T data;
@Schema(name = "数据总条数,分页情况有效")
@Schema(title = "数据总条数,分页情况有效")
private final Long dataCount;
@Schema(name = "跟踪 ID")
@Schema(title = "跟踪 ID")
private String traceId;
public AjaxJson(String code, String msg) {
@@ -24,231 +24,231 @@ public class SystemConfigDTO implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(name = "站点名称", example = "ZFile Site Name")
@Schema(title = "站点名称", example = "ZFile Site Name")
private String siteName;
@Schema(name = "用户名", example = "admin")
@Schema(title = "用户名", example = "admin")
@Deprecated
private String username;
@Schema(name = "头像地址", example = "https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png")
@Schema(title = "头像地址", example = "https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png")
private String avatar;
@Schema(name = "备案号", example = "冀ICP备12345678号-1")
@Schema(title = "备案号", example = "冀ICP备12345678号-1")
private String icp;
@JsonIgnore
@Deprecated
private String password;
@Schema(name = "自定义 JS")
@Schema(title = "自定义 JS")
private String customJs;
@Schema(name = "自定义 CSS")
@Schema(title = "自定义 CSS")
private String customCss;
@Schema(name = "列表尺寸", description ="large:大,default:中,small:小", example = "default")
@Schema(title = "列表尺寸", description ="large:大,default:中,small:小", example = "default")
private String tableSize;
@Schema(name = "是否显示文档区", example = "true")
@Schema(title = "是否显示文档区", example = "true")
private Boolean showDocument;
@Schema(name = "网站公告", example = "ZFile 网站公告")
@Schema(title = "网站公告", example = "ZFile 网站公告")
private String announcement;
@Schema(name = "是否显示网站公告", example = "true")
@Schema(title = "是否显示网站公告", example = "true")
private Boolean showAnnouncement;
@Schema(name = "页面布局", description ="full:全屏,center:居中", example = "full")
@Schema(title = "页面布局", description ="full:全屏,center:居中", example = "full")
private String layout;
@Schema(name = "移动端页面布局", description ="full:全屏,center:居中", example = "full")
@Schema(title = "移动端页面布局", description ="full:全屏,center:居中", example = "full")
private String mobileLayout;
@Schema(name = "移动端显示文件大小", description = "仅适用列表视图", example = "true")
@Schema(title = "移动端显示文件大小", description = "仅适用列表视图", example = "true")
private Boolean mobileShowSize;
@Schema(name = "是否显示生成直链功能(含直链和路径短链)", example = "true")
@Schema(title = "是否显示生成直链功能(含直链和路径短链)", example = "true")
private Boolean showLinkBtn;
@Schema(name = "是否显示生成短链功能", example = "true")
@Schema(title = "是否显示生成短链功能", example = "true")
private Boolean showShortLink;
@Schema(name = "是否显示生成路径链接功能", example = "true")
@Schema(title = "是否显示生成路径链接功能", example = "true")
private Boolean showPathLink;
@Schema(name = "是否已初始化", example = "true")
@Schema(title = "是否已初始化", example = "true")
private Boolean installed;
@Schema(name = "自定义视频文件后缀格式")
@Schema(title = "自定义视频文件后缀格式")
private String customVideoSuffix;
@Schema(name = "自定义图像文件后缀格式")
@Schema(title = "自定义图像文件后缀格式")
private String customImageSuffix;
@Schema(name = "自定义音频文件后缀格式")
@Schema(title = "自定义音频文件后缀格式")
private String customAudioSuffix;
@Schema(name = "自定义文本文件后缀格式")
@Schema(title = "自定义文本文件后缀格式")
private String customTextSuffix;
@Schema(name = "自定义Office后缀格式")
@Schema(title = "自定义Office后缀格式")
private String customOfficeSuffix;
@Schema(name = "自定义kkFileView后缀格式")
@Schema(title = "自定义kkFileView后缀格式")
private String customKkFileViewSuffix;
@Schema(name = "直链地址前缀")
@Schema(title = "直链地址前缀")
private String directLinkPrefix;
@Schema(name = "直链 Referer 防盗链类型")
@Schema(title = "直链 Referer 防盗链类型")
private RefererTypeEnum refererType;
@Schema(name = "是否记录下载日志", example = "true")
@Schema(title = "是否记录下载日志", example = "true")
private Boolean recordDownloadLog;
@Schema(name = "直链 Referer 是否允许为空")
@Schema(title = "直链 Referer 是否允许为空")
private Boolean refererAllowEmpty;
@Schema(name = "直链 Referer 值")
@Schema(title = "直链 Referer 值")
private String refererValue;
/**
* 废弃的字段,改为使用 {@link #adminTwoFactorVerify} 和 {@link #loginVerifySecret} 代替
*/
@Schema(name = "管理员登陆验证方式,目前仅支持 2FA 认证或关闭")
@Schema(title = "管理员登陆验证方式,目前仅支持 2FA 认证或关闭")
@Deprecated
private LoginVerifyModeEnum loginVerifyMode;
@Schema(name = "登陆验证 Secret")
@Schema(title = "登陆验证 Secret")
private String loginVerifySecret;
@Schema(name = "是否启用登陆验证码", example = "true")
@Schema(title = "是否启用登陆验证码", example = "true")
private Boolean loginImgVerify;
@Schema(name = "是否为管理员启用双因素认证", example = "true")
@Schema(title = "是否为管理员启用双因素认证", example = "true")
private Boolean adminTwoFactorVerify;
@Schema(name = "根目录是否显示所有存储源", description ="勾选则根目录显示所有存储源列表, 反之会自动显示第一个存储源的内容.", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "根目录是否显示所有存储源", description ="勾选则根目录显示所有存储源列表, 反之会自动显示第一个存储源的内容.", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean rootShowStorage;
@Schema(name = "强制后端地址", description ="强制指定生成直链,短链,获取回调地址时的地址。", example = "http://xxx.example.com")
@Schema(title = "强制后端地址", description ="强制指定生成直链,短链,获取回调地址时的地址。", example = "http://xxx.example.com")
private String forceBackendAddress;
@Schema(name = "前端域名", description ="前端域名,前后端分离情况下需要配置.", example = "http://xxx.example.com")
@Schema(title = "前端域名", description ="前端域名,前后端分离情况下需要配置.", example = "http://xxx.example.com")
private String frontDomain;
@Schema(name = "是否在前台显示登陆按钮", example = "true")
@Schema(title = "是否在前台显示登陆按钮", example = "true")
private Boolean showLogin;
@Schema(name = "登录日志模式", example = "all")
@Schema(title = "登录日志模式", example = "all")
private LoginLogModeEnum loginLogMode;
@Schema(name = "RAS Hex Key", example = "r2HKbzc1DfvOs5uHhLn7pA==")
@Schema(title = "RAS Hex Key", example = "r2HKbzc1DfvOs5uHhLn7pA==")
private String rsaHexKey;
@Schema(name = "默认文件点击习惯", example = "click")
@Schema(title = "默认文件点击习惯", example = "click")
private FileClickModeEnum fileClickMode;
@Schema(name = "移动端默认文件点击习惯", example = "click")
@Schema(title = "移动端默认文件点击习惯", example = "click")
private FileClickModeEnum mobileFileClickMode;
@Schema(name = "授权码", example = "e619510f-cdcd-f657-6c5e-2d12e9a28ae5")
@Schema(title = "授权码", example = "e619510f-cdcd-f657-6c5e-2d12e9a28ae5")
private String authCode;
@Schema(name = "最大同时上传文件数", example = "5")
@Schema(title = "最大同时上传文件数", example = "5")
private Integer maxFileUploads;
@Schema(name = "onlyOffice 在线预览地址", example = "http://office.zfile.vip")
@Schema(title = "onlyOffice 在线预览地址", example = "http://office.zfile.vip")
private String onlyOfficeUrl;
@Schema(name = "onlyOffice Secret", example = "X9rBGypwWE86Lca8e4Mo55iHFoiyh9ed")
@Schema(title = "onlyOffice Secret", example = "X9rBGypwWE86Lca8e4Mo55iHFoiyh9ed")
private String onlyOfficeSecret;
@Schema(name = "kkFileView 在线预览地址", example = "http://kkfile.zfile.vip")
@Schema(title = "kkFileView 在线预览地址", example = "http://kkfile.zfile.vip")
private String kkFileViewUrl;
@Schema(name = "kkFileView 预览方式", example = "iframe/newTab")
@Schema(title = "kkFileView 预览方式", example = "iframe/newTab")
private String kkFileViewOpenMode;
@Schema(name = "启用 WebDAV", example = "true")
@Schema(title = "启用 WebDAV", example = "true")
private Boolean webdavEnable;
@Schema(name = "WebDAV 服务器中转下载", example = "true")
@Schema(title = "WebDAV 服务器中转下载", example = "true")
private Boolean webdavProxy;
@Schema(name = "WebDAV 匿名用户访问", example = "true")
@Schema(title = "WebDAV 匿名用户访问", example = "true")
private Boolean webdavAllowAnonymous;
@Schema(name = "WebDAV 账号", example = "admin")
@Schema(title = "WebDAV 账号", example = "admin")
private String webdavUsername;
@Schema(name = "WebDAV 密码", example = "123456")
@Schema(title = "WebDAV 密码", example = "123456")
private String webdavPassword;
@Schema(name = "是否允许路径直链可直接访问", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "是否允许路径直链可直接访问", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean allowPathLinkAnonAccess;
@Schema(name = "默认最大显示文件数", example = "1000")
@Schema(title = "默认最大显示文件数", example = "1000")
private Integer maxShowSize;
@Schema(name = "每次加载更多文件数", example = "50")
@Schema(title = "每次加载更多文件数", example = "50")
private Integer loadMoreSize;
@Schema(name = "默认排序字段", example = "name")
@Schema(title = "默认排序字段", example = "name")
private String defaultSortField;
@Schema(name = "默认排序方向", example = "asc")
@Schema(title = "默认排序方向", example = "asc")
private String defaultSortOrder;
@Schema(name = "站点 Home 名称", example = "xxx 的小站")
@Schema(title = "站点 Home 名称", example = "xxx 的小站")
private String siteHomeName;
@Schema(name = "站点 Home Logo", example = "true")
@Schema(title = "站点 Home Logo", example = "true")
private String siteHomeLogo;
@Schema(name = "站点 Logo 点击后链接", example = "https://www.zfile.vip")
@Schema(title = "站点 Logo 点击后链接", example = "https://www.zfile.vip")
private String siteHomeLogoLink;
@Schema(name = "站点 Logo 链接打开方式", example = "_blank")
@Schema(title = "站点 Logo 链接打开方式", example = "_blank")
private String siteHomeLogoTargetMode;
@Schema(name = "管理员页面点击 Logo 回到首页打开方式", example = "_blank")
@Schema(title = "管理员页面点击 Logo 回到首页打开方式", example = "_blank")
private String siteAdminLogoTargetMode;
@Schema(name = "管理员页面点击版本号打开更新日志", example = "true")
@Schema(title = "管理员页面点击版本号打开更新日志", example = "true")
private Boolean siteAdminVersionOpenChangeLog;
@Schema(name = "限制直链下载秒数", example = "_blank")
@Schema(title = "限制直链下载秒数", example = "_blank")
private Integer linkLimitSecond;
@Schema(name = "限制直链下载次数", example = "_blank")
@Schema(title = "限制直链下载次数", example = "_blank")
private Integer linkDownloadLimit;
@Schema(name = "网站 favicon 图标地址", example = "https://www.example.com/favicon.ico")
@Schema(title = "网站 favicon 图标地址", example = "https://www.example.com/favicon.ico")
private String faviconUrl;
@Schema(name = "短链过期时间设置", example = "[{value: 1, unit: \"day\"}, {value: 1, unit: \"week\"}, {value: 1, unit: \"month\"}, {value: 1, unit: \"year\"}]")
@Schema(title = "短链过期时间设置", example = "[{value: 1, unit: \"day\"}, {value: 1, unit: \"week\"}, {value: 1, unit: \"month\"}, {value: 1, unit: \"year\"}]")
@JSONStringParse
private List<LinkExpireDTO> linkExpireTimes;
@Schema(name = "是否默认记住密码", example = "true")
@Schema(title = "是否默认记住密码", example = "true")
private Boolean defaultSavePwd;
/**
* 废弃的字段,不再使用悬浮菜单
*/
@Deprecated
@Schema(name = "是否启用 hover 菜单", example = "true")
@Schema(title = "是否启用 hover 菜单", example = "true")
private Boolean enableHoverMenu;
@Schema(name = "访问 ip 黑名单", example = "162.13.1.0/24\n192.168.1.1")
@Schema(title = "访问 ip 黑名单", example = "162.13.1.0/24\n192.168.1.1")
private String accessIpBlocklist;
@Schema(name = "访问 ua 黑名单", example = "Mozilla/5.0 (Linux; Android) AppleWebKit/537.36*")
@Schema(title = "访问 ua 黑名单", example = "Mozilla/5.0 (Linux; Android) AppleWebKit/537.36*")
private String accessUaBlocklist;
@Schema(name = "匿名用户首页显示内容")
@Schema(title = "匿名用户首页显示内容")
private String guestIndexHtml;
public String getAnnouncement() {
@@ -24,22 +24,22 @@ public class SystemConfig implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
@Schema(name = "ID, 新增无需填写", example = "1")
@Schema(title = "ID, 新增无需填写", example = "1")
private Integer id;
@TableField(value = "name")
@Schema(name = "系统设置名称", example = "siteName")
@Schema(title = "系统设置名称", example = "siteName")
private String name;
@TableField(value = "`value`")
@Schema(name = "系统设置值", example = "ZFile 演示站")
@Schema(title = "系统设置值", example = "ZFile 演示站")
private String value;
@TableField(value = "title")
@Schema(name = "系统设置描述", example = "站点名称")
@Schema(title = "系统设置描述", example = "站点名称")
private String title;
}
@@ -12,10 +12,10 @@ import lombok.Data;
@Schema(description = "站点访问控制参数类")
public class UpdateAccessSettingRequest {
@Schema(name = "访问 ip 黑名单", example = "162.13.1.0/24\n192.168.1.1")
@Schema(title = "访问 ip 黑名单", example = "162.13.1.0/24\n192.168.1.1")
private String accessIpBlocklist;
@Schema(name = "访问 ua 黑名单", example = "Mozilla/5.0 (Linux; Android) AppleWebKit/537.36*")
@Schema(title = "访问 ua 黑名单", example = "Mozilla/5.0 (Linux; Android) AppleWebKit/537.36*")
private String accessUaBlocklist;
}
@@ -17,41 +17,41 @@ import java.util.List;
@Schema(description = "直链设置请求参数类")
public class UpdateLinkSettingRequest {
@Schema(name = "是否记录下载日志", example = "true")
@Schema(title = "是否记录下载日志", example = "true")
private Boolean recordDownloadLog;
@Schema(name = "直链 Referer 防盗链类型")
@Schema(title = "直链 Referer 防盗链类型")
private RefererTypeEnum refererType;
@Schema(name = "直链 Referer 是否允许为空")
@Schema(title = "直链 Referer 是否允许为空")
private Boolean refererAllowEmpty;
@Schema(name = "直链 Referer 值")
@Schema(title = "直链 Referer 值")
private String refererValue;
@Schema(name = "直链地址前缀")
@Schema(title = "直链地址前缀")
@NotBlank(message = "直链地址前缀不能为空")
private String directLinkPrefix;
@Schema(name = "是否显示生成直链功能(含直链和路径短链)", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "是否显示生成直链功能(含直链和路径短链)", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean showLinkBtn;
@Schema(name = "是否显示生成短链功能", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "是否显示生成短链功能", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean showShortLink;
@Schema(name = "是否显示生成路径链接功能", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "是否显示生成路径链接功能", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean showPathLink;
@Schema(name = "是否允许路径直链可直接访问", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "是否允许路径直链可直接访问", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean allowPathLinkAnonAccess;
@Schema(name = "限制直链下载秒数", example = "_blank")
@Schema(title = "限制直链下载秒数", example = "_blank")
private Integer linkLimitSecond;
@Schema(name = "限制直链下载次数", example = "_blank")
@Schema(title = "限制直链下载次数", example = "_blank")
private Integer linkDownloadLimit;
@Schema(name = "短链过期时间设置", example = "[{value: 1, unit: \"day\"}, {value: 1, unit: \"week\"}, {value: 1, unit: \"month\"}, {value: 1, unit: \"year\"}]")
@Schema(title = "短链过期时间设置", example = "[{value: 1, unit: \"day\"}, {value: 1, unit: \"week\"}, {value: 1, unit: \"month\"}, {value: 1, unit: \"year\"}]")
private List<LinkExpireDTO> linkExpireTimes;
}
@@ -13,22 +13,22 @@ import lombok.Data;
@Schema(description = "登陆安全设置请求参数类")
public class UpdateSecuritySettingRequest {
@Schema(name = "是否在前台显示登陆按钮", example = "true")
@Schema(title = "是否在前台显示登陆按钮", example = "true")
private Boolean showLogin;
@Schema(name = "登录日志模式", example = "all")
@Schema(title = "登录日志模式", example = "all")
private LoginLogModeEnum loginLogMode;
@Schema(name = "是否启用登陆验证码", example = "true")
@Schema(title = "是否启用登陆验证码", example = "true")
private Boolean loginImgVerify;
@Schema(name = "是否为管理员启用双因素认证", example = "true")
@Schema(title = "是否为管理员启用双因素认证", example = "true")
private Boolean adminTwoFactorVerify;
@Schema(name = "2FA登陆验证 Secret")
@Schema(title = "2FA登陆验证 Secret")
private String loginVerifySecret;
@Schema(name = "匿名用户首页显示内容")
@Schema(title = "匿名用户首页显示内容")
private String guestIndexHtml;
}
@@ -14,47 +14,47 @@ import jakarta.validation.constraints.NotBlank;
@Schema(description = "站点设置请求参数类")
public class UpdateSiteSettingRequest {
@Schema(name = "站点名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZFile Site Name")
@Schema(title = "站点名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZFile Site Name")
@NotBlank(message = "站点名称不能为空")
private String siteName;
@Schema(name = "强制后端地址", description ="强制指定生成直链,短链,获取回调地址时的地址。", example = "http://xxx.example.com")
@Schema(title = "强制后端地址", description ="强制指定生成直链,短链,获取回调地址时的地址。", example = "http://xxx.example.com")
private String forceBackendAddress;
@Schema(name = "前端域名", description ="前端域名,前后端分离情况下需要配置.", example = "http://xxx.example.com")
@Schema(title = "前端域名", description ="前端域名,前后端分离情况下需要配置.", example = "http://xxx.example.com")
private String frontDomain;
@Schema(name = "头像地址", example = "https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png")
@Schema(title = "头像地址", example = "https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png")
private String avatar;
@Schema(name = "备案号", example = "冀ICP备12345678号-1")
@Schema(title = "备案号", example = "冀ICP备12345678号-1")
private String icp;
@Schema(name = "授权码", example = "e619510f-cdcd-f657-6c5e-2d12e9a28ae5")
@Schema(title = "授权码", example = "e619510f-cdcd-f657-6c5e-2d12e9a28ae5")
private String authCode;
@Schema(name = "最大同时上传文件数", example = "5")
@Schema(title = "最大同时上传文件数", example = "5")
private Integer maxFileUploads;
@Schema(name = "站点 Home 名称", example = "xxx 的小站")
@Schema(title = "站点 Home 名称", example = "xxx 的小站")
private String siteHomeName;
@Schema(name = "站点 Home Logo", example = "true")
@Schema(title = "站点 Home Logo", example = "true")
private String siteHomeLogo;
@Schema(name = "站点 Logo 点击后链接", example = "https://www.zfile.vip")
@Schema(title = "站点 Logo 点击后链接", example = "https://www.zfile.vip")
private String siteHomeLogoLink;
@Schema(name = "站点 Logo 链接打开方式", example = "_blank")
@Schema(title = "站点 Logo 链接打开方式", example = "_blank")
private String siteHomeLogoTargetMode;
@Schema(name = "网站 favicon 图标地址", example = "https://www.example.com/favicon.ico")
@Schema(title = "网站 favicon 图标地址", example = "https://www.example.com/favicon.ico")
private String faviconUrl;
@Schema(name = "管理员页面点击 Logo 回到首页打开方式", example = "_blank")
@Schema(title = "管理员页面点击 Logo 回到首页打开方式", example = "_blank")
private String siteAdminLogoTargetMode;
@Schema(name = "管理员页面点击版本号打开更新日志", example = "true")
@Schema(title = "管理员页面点击版本号打开更新日志", example = "true")
private Boolean siteAdminVersionOpenChangeLog;
}
@@ -14,11 +14,11 @@ import jakarta.validation.constraints.NotBlank;
@Schema(description = "用户修改密码请求参数类")
public class UpdateUserNameAndPasswordRequest {
@Schema(name = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "admin")
@Schema(title = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "admin")
@NotBlank(message = "用户名不能为空")
private String username;
@Schema(name = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456")
@Schema(title = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456")
@NotBlank(message = "密码不能为空")
private String password;
@@ -13,92 +13,92 @@ import lombok.Data;
@Schema(description = "显示设置请求参数类")
public class UpdateViewSettingRequest {
@Schema(name = "根目录是否显示所有存储源", description ="勾选则根目录显示所有存储源列表, 反之会自动显示第一个存储源的内容.", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "根目录是否显示所有存储源", description ="勾选则根目录显示所有存储源列表, 反之会自动显示第一个存储源的内容.", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean rootShowStorage;
@Schema(name = "页面布局", description ="full:全屏,center:居中", example = "full", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "页面布局", description ="full:全屏,center:居中", example = "full", requiredMode = Schema.RequiredMode.REQUIRED)
private String layout;
@Schema(name = "移动端页面布局", description ="full:全屏,center:居中", example = "full")
@Schema(title = "移动端页面布局", description ="full:全屏,center:居中", example = "full")
private String mobileLayout;
@Schema(name = "移动端显示文件大小", description = "仅适用列表视图", example = "true")
@Schema(title = "移动端显示文件大小", description = "仅适用列表视图", example = "true")
private Boolean mobileShowSize;
@Schema(name = "列表尺寸", description ="large:大,default:中,small:小", example = "default", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "列表尺寸", description ="large:大,default:中,small:小", example = "default", requiredMode = Schema.RequiredMode.REQUIRED)
private String tableSize;
@Schema(name = "自定义视频文件后缀格式")
@Schema(title = "自定义视频文件后缀格式")
private String customVideoSuffix;
@Schema(name = "自定义图像文件后缀格式")
@Schema(title = "自定义图像文件后缀格式")
private String customImageSuffix;
@Schema(name = "自定义音频文件后缀格式")
@Schema(title = "自定义音频文件后缀格式")
private String customAudioSuffix;
@Schema(name = "自定义文本文件后缀格式")
@Schema(title = "自定义文本文件后缀格式")
private String customTextSuffix;
@Schema(name = "自定义Office后缀格式")
@Schema(title = "自定义Office后缀格式")
private String customOfficeSuffix;
@Schema(name = "自定义kkFileView后缀格式")
@Schema(title = "自定义kkFileView后缀格式")
private String customKkFileViewSuffix;
@Schema(name = "是否显示文档区", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "是否显示文档区", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean showDocument;
@Schema(name = "是否显示网站公告", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "是否显示网站公告", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean showAnnouncement;
@Schema(name = "网站公告", example = "ZFile 网站公告")
@Schema(title = "网站公告", example = "ZFile 网站公告")
private String announcement;
@Schema(name = "自定义 CSS")
@Schema(title = "自定义 CSS")
private String customCss;
@Schema(name = "自定义 JS")
@Schema(title = "自定义 JS")
private String customJs;
@Schema(name = "默认文件点击习惯", example = "click")
@Schema(title = "默认文件点击习惯", example = "click")
private FileClickModeEnum fileClickMode;
@Schema(name = "移动端默认文件点击习惯", example = "click")
@Schema(title = "移动端默认文件点击习惯", example = "click")
private FileClickModeEnum mobileFileClickMode;
@Schema(name = "onlyOffice 在线预览地址", example = "http://office.zfile.vip")
@Schema(title = "onlyOffice 在线预览地址", example = "http://office.zfile.vip")
private String onlyOfficeUrl;
@Schema(name = "onlyOffice Secret", example = "X9rBGypwWE86Lca8e4Mo55iHFoiyh9ed")
@Schema(title = "onlyOffice Secret", example = "X9rBGypwWE86Lca8e4Mo55iHFoiyh9ed")
private String onlyOfficeSecret;
@Schema(name = "kkFileView 在线预览地址", example = "http://kkfile.zfile.vip")
@Schema(title = "kkFileView 在线预览地址", example = "http://kkfile.zfile.vip")
private String kkFileViewUrl;
@Schema(name = "kkFileView 预览方式", example = "iframe/newTab")
@Schema(title = "kkFileView 预览方式", example = "iframe/newTab")
private String kkFileViewOpenMode;
@Schema(name = "默认最大显示文件数", example = "1000")
@Schema(title = "默认最大显示文件数", example = "1000")
private Integer maxShowSize;
@Schema(name = "每次加载更多文件数", example = "50")
@Schema(title = "每次加载更多文件数", example = "50")
private Integer loadMoreSize;
@Schema(name = "默认排序字段", example = "name")
@Schema(title = "默认排序字段", example = "name")
private String defaultSortField;
@Schema(name = "默认排序方向", example = "asc")
@Schema(title = "默认排序方向", example = "asc")
private String defaultSortOrder;
@Schema(name = "是否默认记住密码", example = "true")
@Schema(title = "是否默认记住密码", example = "true")
private Boolean defaultSavePwd;
/**
* 废弃的字段,不再使用悬浮菜单
*/
@Deprecated
@Schema(name = "是否启用 hover 菜单", example = "true")
@Schema(title = "是否启用 hover 菜单", example = "true")
private Boolean enableHoverMenu;
}
@@ -14,149 +14,149 @@ import java.util.List;
* @author zhaojun
*/
@Data
@Schema(name="全局站点设置响应类")
@Schema(title="全局站点设置响应类")
public class FrontSiteConfigResult {
@Schema(name = "是否已初始化", example = "true")
@Schema(title = "是否已初始化", example = "true")
private Boolean installed;
@Schema(name = "Debug 模式", example = "true", description ="开启 debug 模式后,可重置管理员密码")
@Schema(title = "Debug 模式", example = "true", description ="开启 debug 模式后,可重置管理员密码")
private Boolean debugMode;
@Schema(name = "直链地址前缀", example = "true", description ="直链地址前缀, 如 http(s)://ip:port/${直链前缀}/path/filename")
@Schema(title = "直链地址前缀", example = "true", description ="直链地址前缀, 如 http(s)://ip:port/${直链前缀}/path/filename")
private String directLinkPrefix;
@Schema(name = "站点名称", example = "ZFile Site Name")
@Schema(title = "站点名称", example = "ZFile Site Name")
private String siteName;
@Schema(name = "备案号", example = "冀ICP备12345678号-1")
@Schema(title = "备案号", example = "冀ICP备12345678号-1")
private String icp;
@Schema(name = "页面布局", description ="full:全屏,center:居中", example = "full", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "页面布局", description ="full:全屏,center:居中", example = "full", requiredMode = Schema.RequiredMode.REQUIRED)
private String layout;
@Schema(name = "移动端页面布局", description ="full:全屏,center:居中", example = "full")
@Schema(title = "移动端页面布局", description ="full:全屏,center:居中", example = "full")
private String mobileLayout;
@Schema(name = "移动端显示文件大小", description = "仅适用列表视图", example = "true")
@Schema(title = "移动端显示文件大小", description = "仅适用列表视图", example = "true")
private Boolean mobileShowSize;
@Schema(name = "列表尺寸", description ="large:大,default:中,small:小", example = "default", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "列表尺寸", description ="large:大,default:中,small:小", example = "default", requiredMode = Schema.RequiredMode.REQUIRED)
private String tableSize;
@Schema(name = "是否显示生成直链功能(含直链和路径短链)", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "是否显示生成直链功能(含直链和路径短链)", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean showLinkBtn;
@Schema(name = "是否显示生成短链功能", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "是否显示生成短链功能", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean showShortLink;
@Schema(name = "是否显示生成路径链接功能", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "是否显示生成路径链接功能", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean showPathLink;
@Schema(name = "是否显示文档区", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "是否显示文档区", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean showDocument;
@Schema(name = "是否显示网站公告", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "是否显示网站公告", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean showAnnouncement;
@Schema(name = "网站公告", example = "ZFile 网站公告")
@Schema(title = "网站公告", example = "ZFile 网站公告")
private String announcement;
@Schema(name = "自定义 JS")
@Schema(title = "自定义 JS")
private String customJs;
@Schema(name = "自定义 CSS")
@Schema(title = "自定义 CSS")
private String customCss;
@Schema(name = "自定义视频文件后缀格式")
@Schema(title = "自定义视频文件后缀格式")
private String customVideoSuffix;
@Schema(name = "自定义图像文件后缀格式")
@Schema(title = "自定义图像文件后缀格式")
private String customImageSuffix;
@Schema(name = "自定义音频文件后缀格式")
@Schema(title = "自定义音频文件后缀格式")
private String customAudioSuffix;
@Schema(name = "自定义文本文件后缀格式")
@Schema(title = "自定义文本文件后缀格式")
private String customTextSuffix;
@Schema(name = "自定义Office后缀格式")
@Schema(title = "自定义Office后缀格式")
private String customOfficeSuffix;
@Schema(name = "自定义kkFileView后缀格式")
@Schema(title = "自定义kkFileView后缀格式")
private String customKkFileViewSuffix;
@Schema(name = "根目录是否显示所有存储源", description ="勾选则根目录显示所有存储源列表, 反之会自动显示第一个存储源的内容.", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(title = "根目录是否显示所有存储源", description ="勾选则根目录显示所有存储源列表, 反之会自动显示第一个存储源的内容.", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean rootShowStorage;
@Schema(name = "强制后端地址", description ="强制指定生成直链,短链,获取回调地址时的地址。", example = "http://xxx.example.com")
@Schema(title = "强制后端地址", description ="强制指定生成直链,短链,获取回调地址时的地址。", example = "http://xxx.example.com")
private String forceBackendAddress;
@Schema(name = "前端域名", description ="前端域名,前后端分离情况下需要配置.", example = "http://xxx.example.com")
@Schema(title = "前端域名", description ="前端域名,前后端分离情况下需要配置.", example = "http://xxx.example.com")
private String frontDomain;
@Schema(name = "是否在前台显示登陆按钮", example = "true")
@Schema(title = "是否在前台显示登陆按钮", example = "true")
private Boolean showLogin;
@Schema(name = "登录日志模式", example = "all")
@Schema(title = "登录日志模式", example = "all")
private LoginLogModeEnum loginLogMode;
@Schema(name = "默认文件点击习惯", example = "click")
@Schema(title = "默认文件点击习惯", example = "click")
private FileClickModeEnum fileClickMode;
@Schema(name = "移动端默认文件点击习惯", example = "click")
@Schema(title = "移动端默认文件点击习惯", example = "click")
private FileClickModeEnum mobileFileClickMode;
@Schema(name = "最大同时上传文件数", example = "5")
@Schema(title = "最大同时上传文件数", example = "5")
private Integer maxFileUploads;
@Schema(name = "onlyOffice 在线预览地址", example = "http://office.zfile.vip")
@Schema(title = "onlyOffice 在线预览地址", example = "http://office.zfile.vip")
private String onlyOfficeUrl;
@Schema(name = "kkFileView 在线预览地址", example = "http://kkfile.zfile.vip")
@Schema(title = "kkFileView 在线预览地址", example = "http://kkfile.zfile.vip")
private String kkFileViewUrl;
@Schema(name = "kkFileView 预览方式", example = "iframe/newTab")
@Schema(title = "kkFileView 预览方式", example = "iframe/newTab")
private String kkFileViewOpenMode;
@Schema(name = "默认最大显示文件数", example = "1000")
@Schema(title = "默认最大显示文件数", example = "1000")
private Integer maxShowSize;
@Schema(name = "每次加载更多文件数", example = "50")
@Schema(title = "每次加载更多文件数", example = "50")
private Integer loadMoreSize;
@Schema(name = "默认排序字段", example = "name")
@Schema(title = "默认排序字段", example = "name")
private String defaultSortField;
@Schema(name = "默认排序方向", example = "asc")
@Schema(title = "默认排序方向", example = "asc")
private String defaultSortOrder;
@Schema(name = "站点 Home 名称", example = "xxx 的小站")
@Schema(title = "站点 Home 名称", example = "xxx 的小站")
private String siteHomeName;
@Schema(name = "站点 Home Logo", example = "true")
@Schema(title = "站点 Home Logo", example = "true")
private String siteHomeLogo;
@Schema(name = "站点 Logo 点击后链接", example = "https://www.zfile.vip")
@Schema(title = "站点 Logo 点击后链接", example = "https://www.zfile.vip")
private String siteHomeLogoLink;
@Schema(name = "站点 Logo 链接打开方式", example = "_blank")
@Schema(title = "站点 Logo 链接打开方式", example = "_blank")
private String siteHomeLogoTargetMode;
@Schema(name = "短链过期时间设置", example = "[{value: 1, unit: \"day\"}, {value: 1, unit: \"week\"}, {value: 1, unit: \"month\"}, {value: 1, unit: \"year\"}]")
@Schema(title = "短链过期时间设置", example = "[{value: 1, unit: \"day\"}, {value: 1, unit: \"week\"}, {value: 1, unit: \"month\"}, {value: 1, unit: \"year\"}]")
private List<LinkExpireDTO> linkExpireTimes;
@Schema(name = "是否默认记住密码", example = "true")
@Schema(title = "是否默认记住密码", example = "true")
private Boolean defaultSavePwd;
/**
* 废弃的字段,不再使用悬浮菜单
*/
@Deprecated
@Schema(name = "是否启用 hover 菜单", example = "true")
@Schema(title = "是否启用 hover 菜单", example = "true")
private Boolean enableHoverMenu;
@Schema(name = "是否是游客", example = "true")
@Schema(title = "是否是游客", example = "true")
private boolean guest;
}
@@ -17,34 +17,34 @@ import java.io.Serializable;
* @author zhaojun
*/
@Data
@Schema(name="存储源过滤配置")
@Schema(title="存储源过滤配置")
@TableName(value = "filter_config")
public class FilterConfig implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
@Schema(name = "ID, 新增无需填写", example = "1")
@Schema(title = "ID, 新增无需填写", example = "1")
private Integer id;
@TableField(value = "storage_id")
@Schema(name = "存储源 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@Schema(title = "存储源 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer storageId;
@TableField(value = "expression")
@Schema(name = "过滤表达式", requiredMode = Schema.RequiredMode.REQUIRED, example = "/*.png")
@Schema(title = "过滤表达式", requiredMode = Schema.RequiredMode.REQUIRED, example = "/*.png")
private String expression;
@TableField(value = "description")
@Schema(name = "表达式描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "用来辅助记忆表达式")
@Schema(title = "表达式描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "用来辅助记忆表达式")
private String description;
@TableField(value = "mode")
@Schema(name = "模式", requiredMode = Schema.RequiredMode.REQUIRED, example = "隐藏模式,仅隐藏: hidden, 隐藏后不可访问: inaccessible, 隐藏后不可下载: disable_download")
@Schema(title = "模式", requiredMode = Schema.RequiredMode.REQUIRED, example = "隐藏模式,仅隐藏: hidden, 隐藏后不可访问: inaccessible, 隐藏后不可下载: disable_download")
private FilterConfigHiddenModeEnum mode;
}
@@ -12,13 +12,13 @@ import lombok.Data;
@Schema(description = "系统初始化请求类")
public class InstallSystemRequest {
@Schema(name = "站点名称", example = "ZFile Site Name")
@Schema(title = "站点名称", example = "ZFile Site Name")
private String siteName;
@Schema(name = "用户名", example = "admin")
@Schema(title = "用户名", example = "admin")
private String username;
@Schema(name = "密码", example = "123456")
@Schema(title = "密码", example = "123456")
private String password;
}
@@ -34,32 +34,32 @@ public class ShortLink implements Serializable {
public static final Date PERMANENT_EXPIRE_DATE = DateUtil.parseDate("9999-12-31");
@TableId(value = "id", type = IdType.AUTO)
@Schema(name = "ID, 新增无需填写", example = "1")
@Schema(title = "ID, 新增无需填写", example = "1")
private Integer id;
@TableField(value = "storage_id")
@Schema(name = "存储源 ID", example = "1")
@Schema(title = "存储源 ID", example = "1")
private Integer storageId;
@TableField(value = "short_key")
@Schema(name = "短链 key", example = "voldd3")
@Schema(title = "短链 key", example = "voldd3")
private String shortKey;
@TableField(value = "url")
@Schema(name = "短链 url", example = "/directlink/1/test02.png")
@Schema(title = "短链 url", example = "/directlink/1/test02.png")
private String url;
@TableField(value = "create_date")
@Schema(name = "创建时间", example = "2021-11-22 10:05")
@Schema(title = "创建时间", example = "2021-11-22 10:05")
private Date createDate;
@TableField(value = "expire_date")
@Schema(name = "过期时间", example = "2021-11-23 10:05")
@Schema(title = "过期时间", example = "2021-11-23 10:05")
private Date expireDate;
@@ -19,32 +19,32 @@ import java.util.List;
@EqualsAndHashCode(callSuper = true)
public class QueryDownloadLogRequest extends PageQueryRequest {
@Schema(name="文件路径")
@Schema(title="文件路径")
private String path;
@Schema(name="存储源 key")
@Schema(title="存储源 key")
private String storageKey;
@Schema(name="链接类型")
@Schema(title="链接类型")
private String linkType;
@Schema(name="短链 key")
@Schema(title="短链 key")
private String shortKey;
@Schema(name="访问时间")
@Schema(title="访问时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private List<Date> searchDate;
@Schema(name="访问 ip")
@Schema(title="访问 ip")
private String ip;
@Schema(name="访问 user_agent")
@Schema(title="访问 user_agent")
private String userAgent;
@Schema(name="访问 referer")
@Schema(title="访问 referer")
private String referer;
@Schema(name="排序字段")
@Schema(title="排序字段")
private String orderBy = "create_time";
public Date getDateFrom() {
@@ -19,29 +19,29 @@ import java.util.List;
@EqualsAndHashCode(callSuper = true)
public class QueryLoginLogRequest extends PageQueryRequest {
@Schema(name="用户名")
@Schema(title="用户名")
private String username;
@Schema(name="密码")
@Schema(title="密码")
private String password;
@Schema(name="IP")
@Schema(title="IP")
private String ip;
@Schema(name="User-Agent")
@Schema(title="User-Agent")
private String userAgent;
@Schema(name="来源")
@Schema(title="来源")
private String referer;
@Schema(name="登录结果")
@Schema(title="登录结果")
private String result;
@Schema(name="访问时间")
@Schema(title="访问时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private List<Date> searchDate;
@Schema(name="排序字段")
@Schema(title="排序字段")
private String orderBy = "create_time";
public Date getDateFrom() {
@@ -17,16 +17,16 @@ import java.util.List;
@EqualsAndHashCode(callSuper = true)
public class QueryShortLinkLogRequest extends PageQueryRequest {
@Schema(name="短链 key")
@Schema(title="短链 key")
private String key;
@Schema(name="存储源 id")
@Schema(title="存储源 id")
private String storageId;
@Schema(name="短链文件路径")
@Schema(title="短链文件路径")
private String url;
@Schema(name="访问时间")
@Schema(title="访问时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private List<Date> searchDate;
@@ -15,13 +15,13 @@ import java.util.Date;
@Data
public class ShortLinkResult {
@Schema(name = "短链 id", example = "1")
@Schema(title = "短链 id", example = "1")
private Integer id;
@Schema(name = "存储源名称", example = "我的本地存储")
@Schema(title = "存储源名称", example = "我的本地存储")
private String storageName;
@Schema(name = "存储源类型")
@Schema(title = "存储源类型")
private StorageTypeEnum storageType;
@JsonIgnore
@@ -31,19 +31,19 @@ public class ShortLinkResult {
return storageType.getDescription();
}
@Schema(name = "短链 key", example = "voldd3")
@Schema(title = "短链 key", example = "voldd3")
private String shortKey;
@Schema(name = "文件 url", example = "/directlink/1/test02.png")
@Schema(title = "文件 url", example = "/directlink/1/test02.png")
private String url;
@Schema(name = "创建时间", example = "2021-11-22 10:05")
@Schema(title = "创建时间", example = "2021-11-22 10:05")
private Date createDate;
@Schema(name = "过期时间", example = "2021-11-23 10:05")
@Schema(title = "过期时间", example = "2021-11-23 10:05")
private Date expireDate;
@Schema(name="短链地址")
@Schema(title="短链地址")
private String shortLink;
}
@@ -14,32 +14,32 @@ import jakarta.validation.constraints.NotBlank;
@Schema(description = "搜索存储源中文件请求类")
public class ShortLinkSearchRequest {
@Schema(name = "存储源 id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@Schema(title = "存储源 id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotBlank(message = "存储源 id 不能为空")
private Integer storageId;
@Schema(name = "存储源 key", example = "local")
@Schema(title = "存储源 key", example = "local")
private String key;
@Schema(name = "文件 url/路径", example = "/a")
@Schema(title = "文件 url/路径", example = "/a")
private String url;
@Schema(name = "开始时间", example = "2022-01-01 00:00:00")
@Schema(title = "开始时间", example = "2022-01-01 00:00:00")
private String dateFrom;
@Schema(name = "结束时间", example = "2022-12-31 23:59:59")
@Schema(title = "结束时间", example = "2022-12-31 23:59:59")
private String dateTo;
@Schema(name = "页码", example = "1")
@Schema(title = "页码", example = "1")
private Integer page;
@Schema(name = "每页数量", example = "10")
@Schema(title = "每页数量", example = "10")
private Integer limit;
@Schema(name = "排序字段", example = "id")
@Schema(title = "排序字段", example = "id")
private String orderBy;
@Schema(name = "排序方式", example = "desc")
@Schema(title = "排序方式", example = "desc")
private String orderDirection;
}
@@ -34,47 +34,47 @@ public class DownloadLog implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.INPUT)
@Schema(name = "ID, 新增无需填写", example = "1")
@Schema(title = "ID, 新增无需填写", example = "1")
private Integer id;
@TableField(value = "`download_type`")
@Schema(name="下载类型", example = "directLink", allowableValues = "directLink, shortLink")
@Schema(title="下载类型", example = "directLink", allowableValues = "directLink, shortLink")
private String downloadType;
@TableField(value = "`path`")
@Schema(name="文件路径")
@Schema(title="文件路径")
private String path;
@TableField(value = "`storage_key`")
@Schema(name="存储源 key")
@Schema(title="存储源 key")
private String storageKey;
@TableField(value = "`create_time`")
@Schema(name="访问时间")
@Schema(title="访问时间")
private Date createTime;
@TableField(value = "`ip`")
@Schema(name="访问 ip")
@Schema(title="访问 ip")
private String ip;
@TableField(value = "short_key")
@Schema(name = "短链 key", example = "voldd3")
@Schema(title = "短链 key", example = "voldd3")
private String shortKey;
@TableField(value = "`user_agent`")
@Schema(name="访问 user_agent")
@Schema(title="访问 user_agent")
private String userAgent;
@TableField(value = "`referer`")
@Schema(name="访问 referer")
@Schema(title="访问 referer")
private String referer;
public DownloadLog(String downloadType, String path, String storageKey, String shortKey) {
@@ -14,40 +14,40 @@ import java.util.Date;
@Data
public class DownloadLogResult {
@Schema(name="")
@Schema(title="")
private Integer id;
@Schema(name="文件路径")
@Schema(title="文件路径")
private String path;
@Schema(name = "存储源类型")
@Schema(title = "存储源类型")
private StorageTypeEnum storageType;
@Schema(name = "存储源名称", example = "我的本地存储")
@Schema(title = "存储源名称", example = "我的本地存储")
private String storageName;
@Schema(name = "存储源Key", example = "local")
@Schema(title = "存储源Key", example = "local")
private String storageKey;
@Schema(name="访问时间")
@Schema(title="访问时间")
private Date createTime;
@Schema(name="访问 ip")
@Schema(title="访问 ip")
private String ip;
@Schema(name = "短链 Key")
@Schema(title = "短链 Key")
private String shortKey;
@Schema(name="访问 user_agent")
@Schema(title="访问 user_agent")
private String userAgent;
@Schema(name="访问 referer")
@Schema(title="访问 referer")
private String referer;
@Schema(name="短链地址")
@Schema(title="短链地址")
private String shortLink;
@Schema(name="直链地址")
@Schema(title="直链地址")
private String pathLink;
}
@@ -16,34 +16,34 @@ import java.io.Serializable;
* @author zhaojun
*/
@Data
@Schema(name="密码设置")
@Schema(title="密码设置")
@TableName(value = "password_config")
public class PasswordConfig implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.INPUT)
@Schema(name = "ID, 新增无需填写", example = "1")
@Schema(title = "ID, 新增无需填写", example = "1")
private Integer id;
@TableField(value = "storage_id")
@Schema(name = "存储源 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@Schema(title = "存储源 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer storageId;
@TableField(value = "expression")
@Schema(name = "密码文件夹表达式", requiredMode = Schema.RequiredMode.REQUIRED, example = "/*.png")
@Schema(title = "密码文件夹表达式", requiredMode = Schema.RequiredMode.REQUIRED, example = "/*.png")
private String expression;
@TableField(value = "password")
@Schema(name = "密码值", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456")
@Schema(title = "密码值", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456")
private String password;
@TableField(value = "description")
@Schema(name = "表达式描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "用来辅助记忆表达式")
@Schema(title = "表达式描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "用来辅助记忆表达式")
private String description;
}
@@ -6,13 +6,13 @@ import lombok.Data;
@Data
public class PermissionInfoResult {
@Schema(name="权限名称")
@Schema(title="权限名称")
private String name;
@Schema(name="权限标识")
@Schema(title="权限标识")
private String value;
@Schema(name="权限描述")
@Schema(title="权限描述")
private String tips;
}
@@ -17,39 +17,39 @@ import java.io.Serializable;
* @author zhaojun
*/
@Data
@Schema(name="readme 文档配置")
@Schema(title="readme 文档配置")
@TableName(value = "`readme_config`")
public class ReadmeConfig implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.INPUT)
@Schema(name = "ID, 新增无需填写", example = "1")
@Schema(title = "ID, 新增无需填写", example = "1")
private Integer id;
@TableField(value = "`storage_id`")
@Schema(name="存储源 ID")
@Schema(title="存储源 ID")
private Integer storageId;
@TableField(value = "`description`")
@Schema(name = "表达式描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "用来辅助记忆表达式")
@Schema(title = "表达式描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "用来辅助记忆表达式")
private String description;
@TableField(value = "`expression`")
@Schema(name="路径表达式")
@Schema(title="路径表达式")
private String expression;
@TableField(value = "`readme_text`")
@Schema(name="readme 文本内容, 支持 md 语法.")
@Schema(title="readme 文本内容, 支持 md 语法.")
private String readmeText;
@TableField(value = "`display_mode`")
@Schema(name = "显示模式", requiredMode = Schema.RequiredMode.REQUIRED, example = "readme 显示模式,支持顶部显示: top, 底部显示:bottom, 弹窗显示: dialog")
@Schema(title = "显示模式", requiredMode = Schema.RequiredMode.REQUIRED, example = "readme 显示模式,支持顶部显示: top, 底部显示:bottom, 弹窗显示: dialog")
private ReadmeDisplayModeEnum displayMode;
}
@@ -18,7 +18,7 @@ import java.io.Serializable;
* @author OnEvent
*/
@Data
@Schema(name = "单点登录厂商配置")
@Schema(title = "单点登录厂商配置")
@TableName(value = "`sso_config`")
public class SsoConfig implements Serializable {
@@ -29,62 +29,62 @@ public class SsoConfig implements Serializable {
private Integer id;
@TableField(value = "provider")
@Schema(name = "OIDC/OAuth2 厂商名", example = "Logto", description = "简称,仅可包含数字、字母,-_")
@Schema(title = "OIDC/OAuth2 厂商名", example = "Logto", description = "简称,仅可包含数字、字母,-_")
@NotBlank(message = "OIDC/OAuth2 厂商名不能为空")
private String provider;
@TableField(value = "`name`")
@Schema(name = "显示名称", description = "登录页悬浮到图标上的名称")
@Schema(title = "显示名称", description = "登录页悬浮到图标上的名称")
@NotBlank(message = "显示名称不能为空")
private String name;
@TableField(value = "`icon`")
@Schema(name = "ICON", description = "登录页显示的图标,支持 URL、SVG、Base64 格式")
@Schema(title = "ICON", description = "登录页显示的图标,支持 URL、SVG、Base64 格式")
@NotBlank(message = "ICON 不能为空")
private String icon;
@TableField(value = "`client_id`")
@Schema(name = "在 SSO 厂商处生成的 ID")
@Schema(title = "在 SSO 厂商处生成的 ID")
@NotBlank(message = "client_id 不能为空")
private String clientId;
@TableField(value = "`client_secret`")
@Schema(name = "在 SSO 厂商处生成的密钥")
@Schema(title = "在 SSO 厂商处生成的密钥")
@NotBlank(message = "client_secret 不能为空")
private String clientSecret;
@TableField(value = "`auth_url`")
@Schema(name = "SSO 厂商提供的授权端点")
@Schema(title = "SSO 厂商提供的授权端点")
@NotBlank(message = "auth_url 不能为空")
private String authUrl;
@TableField(value = "`token_url`")
@Schema(name = "SSO 厂商提供的 Token 端点")
@Schema(title = "SSO 厂商提供的 Token 端点")
@NotBlank(message = "token_url 不能为空")
private String tokenUrl;
@TableField(value = "`user_info_url`")
@Schema(name = "SSO 厂商提供的用户信息端点")
@Schema(title = "SSO 厂商提供的用户信息端点")
@NotBlank(message = "user_info_url 不能为空")
private String userInfoUrl;
@TableField(value = "`scope`")
@Schema(name = "SSO 厂商提供的授权范围")
@Schema(title = "SSO 厂商提供的授权范围")
@NotBlank(message = "scope 不能为空")
private String scope;
@TableField(value = "`binding_field`")
@Schema(name = "SSO 系统中用户与本系统中用户互相的绑定字段")
@Schema(title = "SSO 系统中用户与本系统中用户互相的绑定字段")
@NotBlank(message = "用户字段表达式不能为空")
private String bindingField;
@TableField(value = "`enabled`")
@Schema(name = "是否启用")
@Schema(title = "是否启用")
@NotNull(message = "启用状态不能为空")
private Boolean enabled;
@TableField(value = "`order_num`")
@Schema(name = "排序", description = "数字越小越靠前")
@Schema(title = "排序", description = "数字越小越靠前")
private Integer orderNum;
}
@@ -6,10 +6,10 @@ import lombok.Data;
@Data
public class CheckProviderDuplicateRequest {
@Schema(name="id")
@Schema(title="id")
private Integer id;
@Schema(name="提供商")
@Schema(title="提供商")
private String provider;
}
@@ -6,13 +6,13 @@ import lombok.Data;
@Data
public class SsoLoginItemResponse {
@Schema(name = "OIDC/OAuth2 厂商名", example = "Logto", description = "简称,仅可包含数字、字母,-_")
@Schema(title = "OIDC/OAuth2 厂商名", example = "Logto", description = "简称,仅可包含数字、字母,-_")
private String provider;
@Schema(name = "显示名称", description = "登录页悬浮到图标上的名称")
@Schema(title = "显示名称", description = "登录页悬浮到图标上的名称")
private String name;
@Schema(name = "ICON", description = "登录页显示的图标,支持 URL、SVG、Base64 格式")
@Schema(title = "ICON", description = "登录页显示的图标,支持 URL、SVG、Base64 格式")
private String icon;
}
@@ -20,142 +20,142 @@ public class StorageSourceAllParamDTO implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(name = "Endpoint 接入点", example = "oss-cn-beijing.aliyuncs.com")
@Schema(title = "Endpoint 接入点", example = "oss-cn-beijing.aliyuncs.com")
private String endPoint;
@Schema(name = "Endpoint 接入点协议", example = "http")
@Schema(title = "Endpoint 接入点协议", example = "http")
private String endPointScheme;
@Schema(name = "路径风格", example = "path-style")
@Schema(title = "路径风格", example = "path-style")
private String pathStyle;
@Schema(name = "是否是私有空间", example = "true")
@Schema(title = "是否是私有空间", example = "true")
private Boolean isPrivate;
@Schema(name = "代理下载生成签名链接", example = "true")
@Schema(title = "代理下载生成签名链接", example = "true")
private boolean proxyPrivate;
@Schema(name = "accessKey", example = "LTAI4FjfXqXxQZQZ")
@Schema(title = "accessKey", example = "LTAI4FjfXqXxQZQZ")
private String accessKey;
@Schema(name = "secretKey", example = "QJIO19ASJIKL10ZL")
@Schema(title = "secretKey", example = "QJIO19ASJIKL10ZL")
private String secretKey;
@Schema(name = "bucket 名称", example = "zfile-test")
@Schema(title = "bucket 名称", example = "zfile-test")
private String bucketName;
@Schema(name = "原 bucket 名称", example = "zfile-test")
@Schema(title = "原 bucket 名称", example = "zfile-test")
private String originBucketName;
@Schema(name = "域名或 IP", example = "127.0.0.1")
@Schema(title = "域名或 IP", example = "127.0.0.1")
private String host;
@Schema(name = "端口", example = "8080")
@Schema(title = "端口", example = "8080")
private String port;
@Schema(name = "访问令牌", example = "2.a6b7dbd428f731035f771b8d15063f61.86400.12929220")
@Schema(title = "访问令牌", example = "2.a6b7dbd428f731035f771b8d15063f61.86400.12929220")
private String accessToken;
@Schema(name = "刷新令牌", example = "15063f61.86400.1292922000-2346678-1243281asd-1asa")
@Schema(title = "刷新令牌", example = "15063f61.86400.1292922000-2346678-1243281asd-1asa")
private String refreshToken;
@Schema(name = "刷新令牌到期时间(秒)", example = "1752994685")
@Schema(title = "刷新令牌到期时间(秒)", example = "1752994685")
private Integer refreshTokenExpiredAt;
@Schema(name = "secretId", example = "LTAI4FjfXqXxQZQZ")
@Schema(title = "secretId", example = "LTAI4FjfXqXxQZQZ")
private String secretId;
@Schema(name = "文件路径", example = "/root/")
@Schema(title = "文件路径", example = "/root/")
private String filePath;
@Schema(name = "用户名", example = "admin")
@Schema(title = "用户名", example = "admin")
private String username;
@Schema(name = "密码", example = "123456")
@Schema(title = "密码", example = "123456")
private String password;
@Schema(name = "密钥", example = "-----BEGIN OPENSSH PRIVATE KEY-----\nxxxx\n-----END OPENSSH PRIVATE KEY-----")
@Schema(title = "密钥", example = "-----BEGIN OPENSSH PRIVATE KEY-----\nxxxx\n-----END OPENSSH PRIVATE KEY-----")
private String privateKey;
@Schema(name = "密钥 passphrase", example = "123456")
@Schema(title = "密钥 passphrase", example = "123456")
private String passphrase;
@Schema(name = "域名", example = "http://zfile-test.oss-cn-beijing.aliyuncs.com")
@Schema(title = "域名", example = "http://zfile-test.oss-cn-beijing.aliyuncs.com")
private String domain;
@Schema(name = "基路径", example = "/root/")
@Schema(title = "基路径", example = "/root/")
private String basePath;
@Schema(name = "token", example = "12e34awsde12")
@Schema(title = "token", example = "12e34awsde12")
private String token;
@Schema(name = "token 有效期", example = "1800")
@Schema(title = "token 有效期", example = "1800")
private Integer tokenTime;
@Schema(name = "token 有效期", example = "1800")
@Schema(title = "token 有效期", example = "1800")
private Integer proxyTokenTime;
@Schema(name = "siteId", example = "ltzx124yu54z")
@Schema(title = "siteId", example = "ltzx124yu54z")
private String siteId;
@Schema(name = "listId", example = "nbmyuoya12sz")
@Schema(title = "listId", example = "nbmyuoya12sz")
private String listId;
@Schema(name = "站点名称", example = "test")
@Schema(title = "站点名称", example = "test")
private String siteName;
@Schema(name = "站点类型", example = "sites")
@Schema(title = "站点类型", example = "sites")
private String siteType;
@Schema(name = "下载反代域名", example = "http://zfile-oroxy.zfile.vip")
@Schema(title = "下载反代域名", example = "http://zfile-oroxy.zfile.vip")
private String proxyDomain;
@Schema(name = "下载链接类型", example = "basic")
@Schema(title = "下载链接类型", example = "basic")
private String downloadLinkType;
@Schema(name = "clientId", example = "4a72d927-1917-418d-9eb2-1b365c53c1c5")
@Schema(title = "clientId", example = "4a72d927-1917-418d-9eb2-1b365c53c1c5")
private String clientId;
@Schema(name = "clientSecret", example = "l:zI-_yrW75lV8M61K@z.I2K@B/On6Q1a")
@Schema(title = "clientSecret", example = "l:zI-_yrW75lV8M61K@z.I2K@B/On6Q1a")
private String clientSecret;
@Schema(name = "回调地址", example = "https://zfile.jun6.net/onedrive/callback")
@Schema(title = "回调地址", example = "https://zfile.jun6.net/onedrive/callback")
private String redirectUri;
@Schema(name = "区域", example = "cn-beijing")
@Schema(title = "区域", example = "cn-beijing")
private String region;
@Schema(name = "url", example = "url 链接")
@Schema(title = "url", example = "url 链接")
private String url;
@Schema(name = "编码格式", example = "UTF-8")
@Schema(title = "编码格式", example = "UTF-8")
private String encoding;
@Schema(name = "存储源 ID", example = "0AGrY0xF1D7PEUk9PV2")
@Schema(title = "存储源 ID", example = "0AGrY0xF1D7PEUk9PV2")
private String driveId;
@Schema(name = "启用代理上传", example = "true")
@Schema(title = "启用代理上传", example = "true")
private boolean enableProxyUpload;
@Schema(name = "启用代理下载", example = "true")
@Schema(title = "启用代理下载", example = "true")
private boolean enableProxyDownload;
@Schema(name = "下载重定向模式", example = "true")
@Schema(title = "下载重定向模式", example = "true")
private boolean redirectMode;
@Schema(name = "FTP 模式", example = "passive")
@Schema(title = "FTP 模式", example = "passive")
private String ftpMode;
@Schema(name = "代理上传超时时间(秒)", example = "300")
@Schema(title = "代理上传超时时间(秒)", example = "300")
private Integer proxyUploadTimeoutSecond;
@Schema(name = "最大连接数", example = "8")
@Schema(title = "最大连接数", example = "8")
private Integer maxConnections;
@Schema(name = "下载链接强制下载", example = "true")
@Schema(title = "下载链接强制下载", example = "true")
private boolean proxyLinkForceDownload;
@Schema(name = "S3 跨域配置", example = "[]")
@Schema(title = "S3 跨域配置", example = "[]")
@JsonSerialize(using = JSONStringSerializer.class)
@JsonDeserialize(using = JSONStringDeserializer.class)
private String corsConfigList;
@@ -17,56 +17,56 @@ public class StorageSourceDTO implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(name = "ID, 新增无需填写", example = "1")
@Schema(title = "ID, 新增无需填写", example = "1")
private Integer id;
@Schema(name = "存储源名称", example = "阿里云 OSS 存储")
@Schema(title = "存储源名称", example = "阿里云 OSS 存储")
private String name;
@Schema(name = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}")
@Schema(title = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}")
private String key;
@Schema(name = "存储源备注", example = "这是一个备注信息, 用于管理员区分不同的存储源, 此字段仅管理员可见")
@Schema(title = "存储源备注", example = "这是一个备注信息, 用于管理员区分不同的存储源, 此字段仅管理员可见")
private String remark;
@Schema(name = "存储源类型", example = "ftp")
@Schema(title = "存储源类型", example = "ftp")
private StorageTypeEnum type;
@Schema(name = "是否启用", example = "true")
@Schema(title = "是否启用", example = "true")
private boolean enable;
@Schema(name = "是否启用文件操作功能", example = "true", description ="是否启用文件上传,编辑,删除等操作.")
@Schema(title = "是否启用文件操作功能", example = "true", description ="是否启用文件上传,编辑,删除等操作.")
private Boolean enableFileOperator;
@Schema(name = "是否允许匿名进行文件操作", example = "true", description ="是否允许匿名进行文件上传,编辑,删除等操作.")
@Schema(title = "是否允许匿名进行文件操作", example = "true", description ="是否允许匿名进行文件上传,编辑,删除等操作.")
private Boolean enableFileAnnoOperator;
@Schema(name = "是否开启缓存", example = "true")
@Schema(title = "是否开启缓存", example = "true")
private boolean enableCache;
@Schema(name = "是否开启缓存自动刷新", example = "true")
@Schema(title = "是否开启缓存自动刷新", example = "true")
private boolean autoRefreshCache;
@Schema(name = "是否开启搜索", example = "true")
@Schema(title = "是否开启搜索", example = "true")
private boolean searchEnable;
@Schema(name = "搜索是否忽略大小写", example = "true")
@Schema(title = "搜索是否忽略大小写", example = "true")
private boolean searchIgnoreCase;
@TableField(value = "`search_mode`")
@Schema(name = "搜索模式", example = "SEARCH_CACHE", description ="仅从缓存中搜索或直接全量搜索")
@Schema(title = "搜索模式", example = "SEARCH_CACHE", description ="仅从缓存中搜索或直接全量搜索")
private SearchModeEnum searchMode;
@Schema(name = "排序值", example = "1")
@Schema(title = "排序值", example = "1")
private Integer orderNum;
@Schema(name = "存储源拓展属性")
@Schema(title = "存储源拓展属性")
private StorageSourceAllParamDTO storageSourceAllParam;
@Schema(name = "是否默认开启图片模式", example = "true")
@Schema(title = "是否默认开启图片模式", example = "true")
private boolean defaultSwitchToImgMode;
@Schema(name = "兼容 readme 模式", example = "true", description ="兼容模式, 目录文档读取 readme.md 文件")
@Schema(title = "兼容 readme 模式", example = "true", description ="兼容模式, 目录文档读取 readme.md 文件")
private Boolean compatibilityReadme;
}
@@ -11,19 +11,19 @@ import java.util.List;
@Data
public class StorageSourceInitDTO {
@Schema(name = "ID, 新增无需填写", example = "1")
@Schema(title = "ID, 新增无需填写", example = "1")
private Integer id;
@Schema(name = "存储源名称", example = "阿里云 OSS 存储")
@Schema(title = "存储源名称", example = "阿里云 OSS 存储")
private String name;
@Schema(name = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}")
@Schema(title = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}")
private String key;
@Schema(name = "存储源类型", example = "ftp")
@Schema(title = "存储源类型", example = "ftp")
private StorageTypeEnum type;
@Schema(name = "存储源参数")
@Schema(title = "存储源参数")
List<StorageSourceConfig> storageSourceConfigList;
public static StorageSourceInitDTO convert(StorageSource storageSource, List<StorageSourceConfig> storageSourceConfigList) {
@@ -24,84 +24,84 @@ public class StorageSource implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
@Schema(name = "ID, 新增无需填写", example = "1")
@Schema(title = "ID, 新增无需填写", example = "1")
private Integer id;
@TableField(value = "`enable`")
@Schema(name = "是否启用", example = "true")
@Schema(title = "是否启用", example = "true")
private Boolean enable;
@TableField(value = "`enable_file_operator`")
@Schema(name = "是否启用文件操作功能", example = "true", description ="是否启用文件上传,编辑,删除等操作.")
@Schema(title = "是否启用文件操作功能", example = "true", description ="是否启用文件上传,编辑,删除等操作.")
@Deprecated
private Boolean enableFileOperator;
@TableField(value = "`enable_file_anno_operator`")
@Schema(name = "是否允许匿名进行文件操作", example = "true", description ="是否允许匿名进行文件上传,编辑,删除等操作.")
@Schema(title = "是否允许匿名进行文件操作", example = "true", description ="是否允许匿名进行文件上传,编辑,删除等操作.")
@Deprecated
private Boolean enableFileAnnoOperator;
@TableField(value = "`enable_cache`")
@Schema(name = "是否开启缓存", example = "true")
@Schema(title = "是否开启缓存", example = "true")
private Boolean enableCache;
@TableField(value = "`name`")
@Schema(name = "存储源名称", example = "阿里云 OSS 存储")
@Schema(title = "存储源名称", example = "阿里云 OSS 存储")
private String name;
@TableField(value = "`key`")
@Schema(name = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}")
@Schema(title = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}")
private String key;
@TableField(value = "`remark`")
@Schema(name = "存储源备注", example = "这是一个备注信息, 用于管理员区分不同的存储源, 此字段仅管理员可见")
@Schema(title = "存储源备注", example = "这是一个备注信息, 用于管理员区分不同的存储源, 此字段仅管理员可见")
private String remark;
@TableField(value = "auto_refresh_cache")
@Schema(name = "是否开启缓存自动刷新", example = "true")
@Schema(title = "是否开启缓存自动刷新", example = "true")
private Boolean autoRefreshCache;
@TableField(value = "`type`")
@Schema(name = "存储源类型")
@Schema(title = "存储源类型")
private StorageTypeEnum type;
@TableField(value = "search_enable")
@Schema(name = "是否开启搜索", example = "true")
@Schema(title = "是否开启搜索", example = "true")
private Boolean searchEnable;
@TableField(value = "search_ignore_case")
@Schema(name = "搜索是否忽略大小写", example = "true")
@Schema(title = "搜索是否忽略大小写", example = "true")
private Boolean searchIgnoreCase;
@TableField(value = "`search_mode`")
@Schema(name = "搜索模式", example = "SEARCH_CACHE", description ="仅从缓存中搜索或直接全量搜索")
@Schema(title = "搜索模式", example = "SEARCH_CACHE", description ="仅从缓存中搜索或直接全量搜索")
private SearchModeEnum searchMode;
@TableField(value = "order_num")
@Schema(name = "排序值", example = "1")
@Schema(title = "排序值", example = "1")
private Integer orderNum;
@TableField(value = "default_switch_to_img_mode")
@Schema(name = "是否默认开启图片模式", example = "true")
@Schema(title = "是否默认开启图片模式", example = "true")
private Boolean defaultSwitchToImgMode;
@TableField(value = "compatibility_readme")
@Schema(name = "兼容 readme 模式", example = "true", description ="兼容模式, 目录文档读取 readme.md 文件")
@Schema(title = "兼容 readme 模式", example = "true", description ="兼容模式, 目录文档读取 readme.md 文件")
private Boolean compatibilityReadme;
}
@@ -23,32 +23,32 @@ public class StorageSourceConfig implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
@Schema(name = "ID, 新增无需填写", example = "1")
@Schema(title = "ID, 新增无需填写", example = "1")
private Integer id;
@TableField(value = "`name`")
@Schema(name = "存储源属性名称 name", example = "bucketName")
@Schema(title = "存储源属性名称 name", example = "bucketName")
private String name;
@TableField(value = "`type`")
@Schema(name = "存储源类型")
@Schema(title = "存储源类型")
private StorageTypeEnum type;
@TableField(value = "title")
@Schema(name = "存储源属性名称", example = "Bucket 名称")
@Schema(title = "存储源属性名称", example = "Bucket 名称")
private String title;
@TableField(value = "storage_id")
@Schema(name = "存储源 id", example = "1")
@Schema(title = "存储源 id", example = "1")
private Integer storageId;
@TableField(value = "`value`")
@Schema(name = "存储源对应的值", example = "my-bucket")
@Schema(title = "存储源对应的值", example = "my-bucket")
private String value;
}
@@ -46,11 +46,11 @@ public enum StorageTypeEnum implements IEnum {
}
}
@Schema(name = "存储源类型枚举 Key", example = "aliyun")
@Schema(title = "存储源类型枚举 Key", example = "aliyun")
@EnumValue
private final String key;
@Schema(name = "存储源类型枚举描述", example = "阿里云 OSS")
@Schema(title = "存储源类型枚举描述", example = "阿里云 OSS")
private final String description;
StorageTypeEnum(String key, String description) {
@@ -9,11 +9,11 @@ import jakarta.validation.constraints.NotBlank;
* @author zhaojun
*/
@Data
@Schema(name="gd drive 列表请求类")
@Schema(title="gd drive 列表请求类")
public class GetGoogleDriveListRequest {
@NotBlank(message = "accessToken 不能为空")
@Schema(name = "accessToken", requiredMode = Schema.RequiredMode.REQUIRED, example = "v7LtfjIbnxLCTj0R3riwhyxcbv4KVH5HuPWHWrrewHMEwjJyUlYXV6D4m1MLJ2dP__GX_7CKCc-HudUetPXWS2wwbfkNs6ydLq3xrk1gHA7wcD_pmt6oNuRXw5mnFzfdLkH5wIG1suQp3p0eHJurzIaCgYKATASATASFQE65dr8hO725r41QtZc9RJVUg12cA0163")
@Schema(title = "accessToken", requiredMode = Schema.RequiredMode.REQUIRED, example = "v7LtfjIbnxLCTj0R3riwhyxcbv4KVH5HuPWHWrrewHMEwjJyUlYXV6D4m1MLJ2dP__GX_7CKCc-HudUetPXWS2wwbfkNs6ydLq3xrk1gHA7wcD_pmt6oNuRXw5mnFzfdLkH5wIG1suQp3p0eHJurzIaCgYKATASATASFQE65dr8hO725r41QtZc9RJVUg12cA0163")
private String accessToken;
}
@@ -11,22 +11,22 @@ import jakarta.validation.constraints.NotBlank;
* @author zhaojun
*/
@Data
@Schema(name="S3 bucket 列表请求类")
@Schema(title="S3 bucket 列表请求类")
public class GetS3BucketListRequest {
@NotBlank(message = "accessKey 不能为空")
@Schema(name = "accessKey", requiredMode = Schema.RequiredMode.REQUIRED, example = "XQEWQJI129JAS12")
@Schema(title = "accessKey", requiredMode = Schema.RequiredMode.REQUIRED, example = "XQEWQJI129JAS12")
private String accessKey;
@NotBlank(message = "secretKey 不能为空")
@Schema(name = "secretKey", requiredMode = Schema.RequiredMode.REQUIRED, example = "EWQJI129JAS11AE2")
@Schema(title = "secretKey", requiredMode = Schema.RequiredMode.REQUIRED, example = "EWQJI129JAS11AE2")
private String secretKey;
@NotBlank(message = "EndPoint 不能为空")
@Schema(name = "Endpoint 接入点", requiredMode = Schema.RequiredMode.REQUIRED, example = "oss-cn-beijing.aliyuncs.com")
@Schema(title = "Endpoint 接入点", requiredMode = Schema.RequiredMode.REQUIRED, example = "oss-cn-beijing.aliyuncs.com")
private String endPoint;
@Schema(name = "Endpoint 接入点", requiredMode = Schema.RequiredMode.REQUIRED, example = "cn-beijing")
@Schema(title = "Endpoint 接入点", requiredMode = Schema.RequiredMode.REQUIRED, example = "cn-beijing")
private String region;
}
@@ -10,25 +10,25 @@ import lombok.Data;
* @author zhaojun
*/
@Data
@Schema(name="S3 bucket 列表请求类")
@Schema(title="S3 bucket 列表请求类")
public class GetS3CorsListRequest {
@NotBlank(message = "accessKey 不能为空")
@Schema(name = "accessKey", requiredMode = Schema.RequiredMode.REQUIRED, example = "XQEWQJI129JAS12")
@Schema(title = "accessKey", requiredMode = Schema.RequiredMode.REQUIRED, example = "XQEWQJI129JAS12")
private String accessKey;
@NotBlank(message = "secretKey 不能为空")
@Schema(name = "secretKey", requiredMode = Schema.RequiredMode.REQUIRED, example = "EWQJI129JAS11AE2")
@Schema(title = "secretKey", requiredMode = Schema.RequiredMode.REQUIRED, example = "EWQJI129JAS11AE2")
private String secretKey;
@NotBlank(message = "EndPoint 不能为空")
@Schema(name = "Endpoint 接入点", requiredMode = Schema.RequiredMode.REQUIRED, example = "oss-cn-beijing.aliyuncs.com")
@Schema(title = "Endpoint 接入点", requiredMode = Schema.RequiredMode.REQUIRED, example = "oss-cn-beijing.aliyuncs.com")
private String endPoint;
@Schema(name = "Endpoint 接入点", requiredMode = Schema.RequiredMode.REQUIRED, example = "cn-beijing")
@Schema(title = "Endpoint 接入点", requiredMode = Schema.RequiredMode.REQUIRED, example = "cn-beijing")
private String region;
@Schema(name = "存储桶名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "zfile-bucket")
@Schema(title = "存储桶名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "zfile-bucket")
private String bucketName;
}
@@ -13,22 +13,22 @@ import lombok.Data;
@Schema(description = "SharePoint 信息请求类")
public class SharePointInfoRequest {
@Schema(name = "SharePoint 类型", description ="Standard(国际版、个人版等) 或 China(世纪互联)", required = true, example = "Standard")
@Schema(title = "SharePoint 类型", description ="Standard(国际版、个人版等) 或 China(世纪互联)", required = true, example = "Standard")
private String type;
@Schema(name = "访问令牌 (accessToken)", required = true, example = "EwBoxxxxxxxxxxxxxxxbAI=")
@Schema(title = "访问令牌 (accessToken)", required = true, example = "EwBoxxxxxxxxxxxxxxxbAI=")
private String accessToken;
@Schema(name = "域名前缀", requiredMode = Schema.RequiredMode.REQUIRED, example = "zfile")
@Schema(title = "域名前缀", requiredMode = Schema.RequiredMode.REQUIRED, example = "zfile")
private String domainPrefix;
@Schema(name = "站点类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "/sites/")
@Schema(title = "站点类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "/sites/")
private String siteType;
@Schema(name = "站点名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "zfile")
@Schema(title = "站点名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "zfile")
private String siteName;
@Schema(name = "域名类型", description ="com 或 cn", example = "com")
@Schema(title = "域名类型", description ="com 或 cn", example = "com")
private String domainType;
}
@@ -17,7 +17,7 @@ public class SharePointSearchSitesRequest {
@StringListValue(message = "账号类型只能是 Standard(标准版、国际版)或 China(世纪互联)", vals = {"Standard", "China"})
private String type;
@Schema(name = "访问令牌 (accessToken)", required = true, example = "EwBoxxxxxxxxxxxxxxxbAI=")
@Schema(title = "访问令牌 (accessToken)", required = true, example = "EwBoxxxxxxxxxxxxxxxbAI=")
@NotBlank(message = "访问令牌不能为空")
private String accessToken;
@@ -17,11 +17,11 @@ public class SharePointSiteListsRequest {
@StringListValue(message = "账号类型只能是 Standard(标准版、国际版)或 China(世纪互联)", vals = {"Standard", "China"})
private String type;
@Schema(name = "访问令牌 (accessToken)", required = true, example = "EwBoxxxxxxxxxxxxxxxbAI=")
@Schema(title = "访问令牌 (accessToken)", required = true, example = "EwBoxxxxxxxxxxxxxxxbAI=")
@NotBlank(message = "访问令牌不能为空")
private String accessToken;
@Schema(name = "站点 ID (siteId)", required = true, example = "a046ac3a-ea74-13c5-8b8f-233599507d96 或 xxx.sharepoint.cn,a046ac3a-ea74-13c5-8b8f-233599507d96,ec7e71ed-9065-4190-b471-b91c28c30bb1 如果是后者,则会自动截取中间那部分,结果和前者相同")
@Schema(title = "站点 ID (siteId)", required = true, example = "a046ac3a-ea74-13c5-8b8f-233599507d96 或 xxx.sharepoint.cn,a046ac3a-ea74-13c5-8b8f-233599507d96,ec7e71ed-9065-4190-b471-b91c28c30bb1 如果是后者,则会自动截取中间那部分,结果和前者相同")
@NotBlank(message = "siteId 不能为空")
private String siteId;
@@ -15,15 +15,15 @@ import jakarta.validation.constraints.NotNull;
@Schema(description = "复制存储源请求请求类")
public class CopyStorageSourceRequest {
@Schema(name = "存储源 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@Schema(title = "存储源 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "存储源 id 不能为空")
private Integer fromId;
@Schema(name = "复制后存储源名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@Schema(title = "复制后存储源名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotBlank(message = "复制后存储源名称不能为空")
private String toName;
@Schema(name = "复制后存储源别名", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@Schema(title = "复制后存储源别名", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotBlank(message = "复制后存储源别名不能为空")
private String toKey;
@@ -14,12 +14,12 @@ import jakarta.validation.constraints.NotBlank;
@Schema(description = "更新存储源 id 请求类")
public class UpdateStorageIdRequest {
@Schema(name = "存储源原 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@Schema(title = "存储源原 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotBlank(message = "源 id 不能为空")
private Integer updateId;
@Schema(name = "存储源新 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@Schema(title = "存储源新 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotBlank(message = "修改后的 id 不能为空")
private Integer newId;
@@ -14,12 +14,12 @@ import jakarta.validation.constraints.NotBlank;
@Schema(description = "更新存储源排序值请求类")
public class UpdateStorageSortRequest {
@Schema(name = "存储源 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@Schema(title = "存储源 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotBlank(message = "存储源 id 不能为空")
private Integer id;
@Schema(name = "排序值,值越小越靠前", requiredMode = Schema.RequiredMode.REQUIRED, example = "5")
@Schema(title = "排序值,值越小越靠前", requiredMode = Schema.RequiredMode.REQUIRED, example = "5")
@NotBlank(message = "排序值不能为空")
private Integer orderNum;
@@ -15,14 +15,14 @@ import jakarta.validation.constraints.NotBlank;
@Schema(description = "获取指定文件信息的请求类")
public class FileItemRequest {
@Schema(name = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@Schema(title = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@NotBlank(message = "存储源 key 不能为空")
private String storageKey;
@Schema(name = "请求路径", example = "/")
@Schema(title = "请求路径", example = "/")
private String path;
@Schema(name = "文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
@Schema(title = "文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
private String password;
public void handleDefaultValue() {
@@ -13,14 +13,14 @@ import lombok.Data;
@Schema(description = "获取文件夹参数请求类")
public class FileListConfigRequest {
@Schema(name = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@Schema(title = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@NotBlank(message = "存储源 key 不能为空")
private String storageKey;
@Schema(name = "请求路径", example = "/")
@Schema(title = "请求路径", example = "/")
private String path = "/";
@Schema(name = "文件夹密码", example = "123456")
@Schema(title = "文件夹密码", example = "123456")
private String password;
}
@@ -17,14 +17,14 @@ import jakarta.validation.constraints.NotBlank;
@Schema(description = "获取文件夹下文件列表请求类")
public class FileListRequest {
@Schema(name = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@Schema(title = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@NotBlank(message = "存储源 key 不能为空")
private String storageKey;
@Schema(name = "请求路径", example = "/")
@Schema(title = "请求路径", example = "/")
private String path;
@Schema(name = "文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
@Schema(title = "文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
private String password;
@StringListValue(message = "排序字段参数异常,只能是 name、size、time", vals = {"name", "size", "time"})
@@ -16,56 +16,56 @@ import lombok.Data;
@Schema(description = "存储源基本参数")
public class SaveStorageSourceRequest {
@Schema(name = "ID, 新增无需填写", example = "1")
@Schema(title = "ID, 新增无需填写", example = "1")
private Integer id;
@Schema(name = "存储源名称", example = "阿里云 OSS 存储")
@Schema(title = "存储源名称", example = "阿里云 OSS 存储")
private String name;
@Schema(name = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}")
@Schema(title = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}")
private String key;
@Schema(name = "存储源备注", example = "这是一个备注信息, 用于管理员区分不同的存储源, 此字段仅管理员可见")
@Schema(title = "存储源备注", example = "这是一个备注信息, 用于管理员区分不同的存储源, 此字段仅管理员可见")
private String remark;
@Schema(name = "存储源类型", example = "ftp")
@Schema(title = "存储源类型", example = "ftp")
private StorageTypeEnum type;
@Schema(name = "是否启用", example = "true")
@Schema(title = "是否启用", example = "true")
private Boolean enable;
@Schema(name = "是否启用文件操作功能", example = "true", description ="是否启用文件上传,编辑,删除等操作.")
@Schema(title = "是否启用文件操作功能", example = "true", description ="是否启用文件上传,编辑,删除等操作.")
private Boolean enableFileOperator;
@Schema(name = "是否允许匿名进行文件操作", example = "true", description ="是否允许匿名进行文件上传,编辑,删除等操作.")
@Schema(title = "是否允许匿名进行文件操作", example = "true", description ="是否允许匿名进行文件上传,编辑,删除等操作.")
private Boolean enableFileAnnoOperator;
@Schema(name = "是否开启缓存", example = "true")
@Schema(title = "是否开启缓存", example = "true")
private boolean enableCache;
@Schema(name = "是否开启缓存自动刷新", example = "true")
@Schema(title = "是否开启缓存自动刷新", example = "true")
private boolean autoRefreshCache;
@Schema(name = "是否开启搜索", example = "true")
@Schema(title = "是否开启搜索", example = "true")
private boolean searchEnable;
@Schema(name = "搜索是否忽略大小写", example = "true")
@Schema(title = "搜索是否忽略大小写", example = "true")
private boolean searchIgnoreCase;
@TableField(value = "`search_mode`")
@Schema(name = "搜索模式", example = "SEARCH_CACHE", description ="仅从缓存中搜索或直接全量搜索")
@Schema(title = "搜索模式", example = "SEARCH_CACHE", description ="仅从缓存中搜索或直接全量搜索")
private SearchModeEnum searchMode;
@Schema(name = "排序值", example = "1")
@Schema(title = "排序值", example = "1")
private Integer orderNum;
@Schema(name = "存储源拓展属性")
@Schema(title = "存储源拓展属性")
private StorageSourceAllParamDTO storageSourceAllParam;
@Schema(name = "是否默认开启图片模式", example = "true")
@Schema(title = "是否默认开启图片模式", example = "true")
private boolean defaultSwitchToImgMode;
@Schema(name = "兼容 readme 模式", example = "true", description ="兼容模式, 目录文档读取 readme.md 文件")
@Schema(title = "兼容 readme 模式", example = "true", description ="兼容模式, 目录文档读取 readme.md 文件")
private boolean compatibilityReadme;
}
@@ -17,20 +17,20 @@ import java.util.Map;
@Schema(description = "搜索存储源中文件请求类")
public class SearchStorageRequest {
@Schema(name = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@Schema(title = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@NotBlank(message = "存储源 key 不能为空")
private String storageKey;
@Schema(name = "搜索关键字", requiredMode = Schema.RequiredMode.REQUIRED, example = "png")
@Schema(title = "搜索关键字", requiredMode = Schema.RequiredMode.REQUIRED, example = "png")
private String searchKeyword;
@Schema(name = "搜索模式", requiredMode = Schema.RequiredMode.REQUIRED, example = "search_all")
@Schema(title = "搜索模式", requiredMode = Schema.RequiredMode.REQUIRED, example = "search_all")
private SearchFolderModeEnum searchMode;
@Schema(name = "搜索路径", example = "/")
@Schema(title = "搜索路径", example = "/")
private String path;
@Schema(name = "密码缓存")
@Schema(title = "密码缓存")
private Map<String, String> passwordCache;
@@ -17,11 +17,11 @@ import java.util.List;
@Schema(description = "删除文件夹请求类")
public class BatchDeleteRequest {
@Schema(name = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@Schema(title = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@NotBlank(message = "存储源 key 不能为空")
private String storageKey;
@Schema(name = "删除的文件详情")
@Schema(title = "删除的文件详情")
@NotEmpty(message = "要删除的文件/文件夹不能为空")
private List<DeleteItem> deleteItems;
@@ -17,30 +17,30 @@ import java.util.List;
@Schema(description = "(移动/复制)(文件/文件夹)请求")
public class BatchMoveOrCopyFileRequest {
@Schema(name = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@Schema(title = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@NotBlank(message = "存储源 key 不能为空")
private String storageKey;
@Schema(name = "请求路径", example = "/", description ="表示要移动的文件夹所在的文件夹")
@Schema(title = "请求路径", example = "/", description ="表示要移动的文件夹所在的文件夹")
@NotBlank
private String path;
@Schema(name = "文件夹名称", example = "movie", description ="表示要移动的文件夹名称,支持多个")
@Schema(title = "文件夹名称", example = "movie", description ="表示要移动的文件夹名称,支持多个")
@NotEmpty
private List<String> nameList;
@Schema(name = "目标路径", example = "/", description ="表示要移动到的文件夹")
@Schema(title = "目标路径", example = "/", description ="表示要移动到的文件夹")
@NotBlank
private String targetPath;
@Schema(name = "目标文件夹名称", example = "电影", description ="表示要移动到的文件夹名称,支持多个")
@Schema(title = "目标文件夹名称", example = "电影", description ="表示要移动到的文件夹名称,支持多个")
@NotEmpty
private List<String> targetNameList;
@Schema(name = "源文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
@Schema(title = "源文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
private String srcPathPassword;
@Schema(name = "目标文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
@Schema(title = "目标文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
private String targetPathPassword;
}
@@ -13,18 +13,18 @@ import lombok.Data;
@Schema(description = "新建文件夹请求类")
public class NewFolderRequest {
@Schema(name = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@Schema(title = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@NotBlank(message = "存储源 key 不能为空")
private String storageKey;
@Schema(name = "请求路径", example = "/", description ="表示在哪个文件夹下创建文件夹")
@Schema(title = "请求路径", example = "/", description ="表示在哪个文件夹下创建文件夹")
private String path = "/";
@Schema(name = "新建的文件夹名称", example = "/a/b/c", description ="文件夹名称支持多级,如:/a/b/c")
@Schema(title = "新建的文件夹名称", example = "/a/b/c", description ="文件夹名称支持多级,如:/a/b/c")
@NotBlank(message = "新建的文件夹名称不能为空")
private String name;
@Schema(name = "文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
@Schema(title = "文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
private String password;
}
@@ -13,22 +13,22 @@ import lombok.Data;
@Schema(description = "重命名文件请求类")
public class RenameFileRequest {
@Schema(name = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@Schema(title = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@NotBlank(message = "存储源 key 不能为空")
private String storageKey;
@Schema(name = "请求路径", example = "/", description ="表示在哪个文件夹下重命名文件")
@Schema(title = "请求路径", example = "/", description ="表示在哪个文件夹下重命名文件")
private String path = "/";
@Schema(name = "重命名的原文件名称", example = "test.txt")
@Schema(title = "重命名的原文件名称", example = "test.txt")
@NotBlank(message = "原文件名不能为空")
private String name;
@Schema(name = "重命名后的文件名称", example = "text-1.txt")
@Schema(title = "重命名后的文件名称", example = "text-1.txt")
@NotBlank(message = "新文件名不能为空")
private String newName;
@Schema(name = "文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
@Schema(title = "文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
private String password;
}
@@ -13,22 +13,22 @@ import lombok.Data;
@Schema(description = "重命名文件夹请求类")
public class RenameFolderRequest {
@Schema(name = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@Schema(title = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@NotBlank(message = "存储源 key 不能为空")
private String storageKey;
@Schema(name = "请求路径", example = "/", description ="表示在哪个文件夹下重命名文件夹")
@Schema(title = "请求路径", example = "/", description ="表示在哪个文件夹下重命名文件夹")
private String path = "/";
@Schema(name = "重命名的原文件夹名称", example = "movie")
@Schema(title = "重命名的原文件夹名称", example = "movie")
@NotBlank(message = "原文件夹名称不能为空")
private String name;
@Schema(name = "重命名后的文件名称", example = "music")
@Schema(title = "重命名后的文件名称", example = "music")
@NotBlank(message = "新文件夹名称不能为空")
private String newName;
@Schema(name = "文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
@Schema(title = "文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
private String password;
}
@@ -13,21 +13,21 @@ import lombok.Data;
@Schema(description = "上传文件请求类")
public class UploadFileRequest {
@Schema(name = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@Schema(title = "存储源 key", requiredMode = Schema.RequiredMode.REQUIRED, example = "local")
@NotBlank(message = "存储源 key 不能为空")
private String storageKey;
@Schema(name = "上传路径", example = "/movie", description ="表示上传文件到哪个路径")
@Schema(title = "上传路径", example = "/movie", description ="表示上传文件到哪个路径")
private String path = "/";
@Schema(name = "上传的文件名", example = "test.mp4")
@Schema(title = "上传的文件名", example = "test.mp4")
@NotBlank(message = "上传的文件名不能为空")
private String name;
@Schema(name = "文件大小", example = "129102")
@Schema(title = "文件大小", example = "129102")
private Long size;
@Schema(name = "文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
@Schema(title = "文件夹密码, 如果文件夹需要密码才能访问,则支持请求密码", example = "123456")
private String password;
}
@@ -12,14 +12,14 @@ import java.util.List;
* @author zhaojun
*/
@Data
@Schema(name="文件列表信息结果类")
@Schema(title="文件列表信息结果类")
@AllArgsConstructor
public class FileInfoResult {
@Schema(name="文件列表")
@Schema(title="文件列表")
private List<FileItemResult> files;
@Schema(name="当前目录密码路径表达式")
@Schema(title="当前目录密码路径表达式")
private String passwordPattern;
}
@@ -15,25 +15,25 @@ import java.util.Date;
* @author zhaojun
*/
@Data
@Schema(name="文件列表信息结果类")
@Schema(title="文件列表信息结果类")
public class FileItemResult implements Serializable {
@Schema(name = "文件名", example = "a.mp4")
@Schema(title = "文件名", example = "a.mp4")
private String name;
@Schema(name = "时间", example = "2020-01-01 15:22")
@Schema(title = "时间", example = "2020-01-01 15:22")
private Date time;
@Schema(name = "大小", example = "1024")
@Schema(title = "大小", example = "1024")
private Long size;
@Schema(name = "类型", example = "file")
@Schema(title = "类型", example = "file")
private FileTypeEnum type;
@Schema(name = "所在路径", example = "/home/")
@Schema(title = "所在路径", example = "/home/")
private String path;
@Schema(name = "下载地址", example = "http://www.example.com/a.mp4")
@Schema(title = "下载地址", example = "http://www.example.com/a.mp4")
private String url;
/**
@@ -11,13 +11,13 @@ import lombok.Data;
*/
@Data
@AllArgsConstructor
@Schema(name="gd drive 基本信息结果类")
@Schema(title="gd drive 基本信息结果类")
public class GoogleDriveInfoResult {
@Schema(name = "drive id", example = "0AGrY0xF1D7PEUk9PVB")
@Schema(title = "drive id", example = "0AGrY0xF1D7PEUk9PVB")
private String id;
@Schema(name = "drive 名称", example = "zfile")
@Schema(title = "drive 名称", example = "zfile")
private String name;
}
@@ -13,13 +13,13 @@ import java.util.Date;
*/
@Data
@AllArgsConstructor
@Schema(name="S3 bucket 名称结果类")
@Schema(title="S3 bucket 名称结果类")
public class S3BucketNameResult {
@Schema(name = "bucket 名称", example = "zfile")
@Schema(title = "bucket 名称", example = "zfile")
private String name;
@Schema(name = "bucket 创建时间", example = "2022-01-01 15:22")
@Schema(title = "bucket 创建时间", example = "2022-01-01 15:22")
private Date date;
}
@@ -14,16 +14,16 @@ import java.util.Date;
@Schema(description = "Sharepoint 网站 list 列表")
public class SharepointSiteListResult {
@Schema(name="站点目录 id")
@Schema(title="站点目录 id")
private String id;
@Schema(name="站点目录名称")
@Schema(title="站点目录名称")
private String displayName;
@Schema(name="站点目录创建时间")
@Schema(title="站点目录创建时间")
private Date createdDateTime;
@Schema(name="站点目录地址")
@Schema(title="站点目录地址")
private String webUrl;
}
@@ -12,13 +12,13 @@ import lombok.Data;
@Schema(description = "SharePoint 站点结果类")
public class SharepointSiteResult {
@Schema(name="站点 id")
@Schema(title="站点 id")
private String id;
@Schema(name="站点名称")
@Schema(title="站点名称")
private String displayName;
@Schema(name="站点地址")
@Schema(title="站点地址")
private String webUrl;
}
@@ -15,70 +15,70 @@ import lombok.Data;
@Schema(description = "存储源设置后台管理 Result")
public class StorageSourceAdminResult {
@Schema(name = "ID, 新增无需填写", example = "1")
@Schema(title = "ID, 新增无需填写", example = "1")
private Integer id;
@Schema(name = "是否启用", example = "true")
@Schema(title = "是否启用", example = "true")
private Boolean enable;
@Schema(name = "是否启用文件操作功能", example = "true", description ="是否启用文件上传,编辑,删除等操作.")
@Schema(title = "是否启用文件操作功能", example = "true", description ="是否启用文件上传,编辑,删除等操作.")
private Boolean enableFileOperator;
@Schema(name = "是否允许匿名进行文件操作", example = "true", description ="是否允许匿名进行文件上传,编辑,删除等操作.")
@Schema(title = "是否允许匿名进行文件操作", example = "true", description ="是否允许匿名进行文件上传,编辑,删除等操作.")
private Boolean enableFileAnnoOperator;
@Schema(name = "是否开启缓存", example = "true")
@Schema(title = "是否开启缓存", example = "true")
private Boolean enableCache;
@Schema(name = "存储源名称", example = "阿里云 OSS 存储")
@Schema(title = "存储源名称", example = "阿里云 OSS 存储")
private String name;
@Schema(name = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}")
@Schema(title = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}")
private String key;
@Schema(name = "存储源备注", example = "这是一个备注信息, 用于管理员区分不同的存储源, 此字段仅管理员可见")
@Schema(title = "存储源备注", example = "这是一个备注信息, 用于管理员区分不同的存储源, 此字段仅管理员可见")
private String remark;
@Schema(name = "是否开启缓存自动刷新", example = "true")
@Schema(title = "是否开启缓存自动刷新", example = "true")
private Boolean autoRefreshCache;
@Schema(name = "存储源类型")
@Schema(title = "存储源类型")
private StorageTypeEnum type;
@Schema(name = "是否开启搜索", example = "true")
@Schema(title = "是否开启搜索", example = "true")
private Boolean searchEnable;
@Schema(name = "搜索是否忽略大小写", example = "true")
@Schema(title = "搜索是否忽略大小写", example = "true")
private Boolean searchIgnoreCase;
@Schema(name = "搜索模式", example = "SEARCH_CACHE", description ="仅从缓存中搜索或直接全量搜索")
@Schema(title = "搜索模式", example = "SEARCH_CACHE", description ="仅从缓存中搜索或直接全量搜索")
private SearchModeEnum searchMode;
@Schema(name = "排序值", example = "1")
@Schema(title = "排序值", example = "1")
private Integer orderNum;
@Schema(name = "是否默认开启图片模式", example = "true")
@Schema(title = "是否默认开启图片模式", example = "true")
private Boolean defaultSwitchToImgMode;
@Schema(name = "存储源刷新信息")
@Schema(title = "存储源刷新信息")
private RefreshTokenCacheBO.RefreshTokenInfo refreshTokenInfo;
@Schema(name = "兼容 readme 模式", example = "true", description ="兼容模式, 目录文档读取 readme.md 文件")
@Schema(title = "兼容 readme 模式", example = "true", description ="兼容模式, 目录文档读取 readme.md 文件")
private Boolean compatibilityReadme;
}
@@ -12,22 +12,22 @@ import java.util.Map;
*
* @author zhaojun
*/
@Schema(name="存储源设置响应类")
@Schema(title="存储源设置响应类")
@Data
public class StorageSourceConfigResult {
@Schema(name="readme 文本内容, 支持 md 语法.")
@Schema(title="readme 文本内容, 支持 md 语法.")
private String readmeText;
@Schema(name = "显示模式", requiredMode = Schema.RequiredMode.REQUIRED, example = "readme 显示模式,支持顶部显示: top, 底部显示:bottom, 弹窗显示: dialog")
@Schema(title = "显示模式", requiredMode = Schema.RequiredMode.REQUIRED, example = "readme 显示模式,支持顶部显示: top, 底部显示:bottom, 弹窗显示: dialog")
private ReadmeDisplayModeEnum readmeDisplayMode;
@Schema(name = "是否默认开启图片模式", example = "true")
@Schema(title = "是否默认开启图片模式", example = "true")
private Boolean defaultSwitchToImgMode;
private Map<String, Boolean> permission;
@Schema(name = "存储源元数据")
@Schema(title = "存储源元数据")
private StorageSourceMetadata metadata;
private String rootPath;
@@ -17,19 +17,19 @@ public class StorageSourceResult implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(name = "存储源名称", example = "阿里云 OSS 存储")
@Schema(title = "存储源名称", example = "阿里云 OSS 存储")
private String name;
@Schema(name = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}")
@Schema(title = "存储源别名", example = "存储源别名,用于 URL 中展示, 如 http://ip:port/{存储源别名}")
private String key;
@Schema(name = "存储源类型")
@Schema(title = "存储源类型")
private StorageTypeEnum type;
@Schema(name = "是否开启搜索", example = "true")
@Schema(title = "是否开启搜索", example = "true")
private Boolean searchEnable;
@Schema(name = "是否默认开启图片模式", example = "true")
@Schema(title = "是否默认开启图片模式", example = "true")
private Boolean defaultSwitchToImgMode;
}
@@ -23,34 +23,34 @@ public class UserStorageSourceDetailDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(name="id")
@Schema(title="id")
private Integer id;
@Schema(name="用户 id")
@Schema(title="用户 id")
private Integer userId;
@Schema(name="存储源 ID")
@Schema(title="存储源 ID")
private Integer storageSourceId;
/**
* 相较于 entity 额外查询的字段
*/
@Schema(name="存储源名称")
@Schema(title="存储源名称")
private String storageSourceName;
/**
* 相较于 entity 额外查询的字段
*/
@Schema(name="存储策略类型")
@Schema(title="存储策略类型")
private StorageTypeEnum storageSourceType;
@Schema(name="允许访问的基础路径")
@Schema(title="允许访问的基础路径")
private String rootPath;
@Schema(name="是否启用")
@Schema(title="是否启用")
private Boolean enable;
@Schema(name="权限列表")
@Schema(title="权限列表")
@TableField(typeHandler = im.zhaojun.zfile.core.config.mybatis.CollectionStrTypeHandler.class)
private Set<String> permissions;
@@ -29,7 +29,7 @@ public class User implements Serializable {
@JsonIgnore
private String password;
@Schema(name="")
@Schema(title="")
@JsonIgnore
private String salt;
@@ -6,10 +6,10 @@ import lombok.Data;
@Data
public class CheckUserDuplicateRequest {
@Schema(name="用户 id")
@Schema(title="用户 id")
private Integer id;
@Schema(name="用户名")
@Schema(title="用户名")
private String username;
}
@@ -14,19 +14,19 @@ import lombok.Data;
@Schema(description = "复制用户名请求类")
public class CopyUserRequest {
@Schema(name = "存储源 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@Schema(title = "存储源 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "存储源 id 不能为空")
private Integer fromId;
@Schema(name = "复制后用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@Schema(title = "复制后用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotBlank(message = "复制后用户名不能为空")
private String toUsername;
@Schema(name = "复制后用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@Schema(title = "复制后用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotBlank(message = "复制后用户昵称不能为空")
private String toNickname;
@Schema(name = "复制后用户密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@Schema(title = "复制后用户密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private String toPassword;
}
@@ -14,26 +14,26 @@ import java.util.List;
@Data
public class QueryUserRequest {
@Schema(name="用户名")
@Schema(title="用户名")
private String username;
@Schema(name="昵称")
@Schema(title="昵称")
private String nickname;
@Schema(name="是否启用")
@Schema(title="是否启用")
private Boolean enable;
@Schema(name="创建时间")
@Schema(title="创建时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private List<Date> searchDate;
@Schema(name="排序字段")
@Schema(title="排序字段")
private String sortField = "id";
@Schema(name="排序方式")
@Schema(title="排序方式")
private Boolean sortAsc = true;
@Schema(name="是否隐藏未启用的存储源")
@Schema(title="是否隐藏未启用的存储源")
private Boolean hideDisabledStorage;
public Date getDateFrom() {
@@ -10,28 +10,28 @@ import java.util.Set;
@Data
public class SaveUserRequest {
@Schema(name="用户 id")
@Schema(title="用户 id")
private Integer id;
@Schema(name="用户名")
@Schema(title="用户名")
private String username;
@Schema(name="昵称")
@Schema(title="昵称")
private String nickname;
@Schema(name="密码")
@Schema(title="密码")
private String password;
@Schema(name="")
@Schema(title="")
private String salt;
@Schema(name="用户默认权限", description ="当新增存储源时, 自动授予该用户新存储源的权限.")
@Schema(title="用户默认权限", description ="当新增存储源时, 自动授予该用户新存储源的权限.")
private Set<String> defaultPermissions;
@Schema(name="授予给用户的存储策略列表")
@Schema(title="授予给用户的存储策略列表")
private List<UserStorageSource> userStorageSourceList;
@Schema(name="是否启用")
@Schema(title="是否启用")
private Boolean enable;
}
@@ -14,18 +14,18 @@ import jakarta.validation.constraints.NotBlank;
@Schema(description = "用户登录请求参数类")
public class UserLoginRequest {
@Schema(name = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "admin")
@Schema(title = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "admin")
@NotBlank(message = "用户名不能为空")
private String username;
@Schema(name = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456")
@Schema(title = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456")
@NotBlank(message = "密码不能为空")
private String password;
@Schema(name = "验证码", example = "123456")
@Schema(title = "验证码", example = "123456")
private String verifyCode;
@Schema(name = "验证码 UUID", description ="用于图形验证码确认每个验证码图片请求的唯一值.", example = "c140a792-4ca2-4dac-8d4c-35750b78524f")
@Schema(title = "验证码 UUID", description ="用于图形验证码确认每个验证码图片请求的唯一值.", example = "c140a792-4ca2-4dac-8d4c-35750b78524f")
private String verifyCodeUUID;
}
@@ -16,11 +16,11 @@ import jakarta.validation.constraints.NotBlank;
@Schema(description = "验证二步验证结果")
public class VerifyLoginTwoFactorAuthenticatorRequest {
@Schema(name = "二步验证二维码", requiredMode = Schema.RequiredMode.REQUIRED, example = "EwBoxxxxxxxxxxxxxxxbAI=")
@Schema(title = "二步验证二维码", requiredMode = Schema.RequiredMode.REQUIRED, example = "EwBoxxxxxxxxxxxxxxxbAI=")
@NotBlank(message = "二步验证密钥不能为空")
private String secret;
@Schema(name = "APP 生成的二步验证验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "125612")
@Schema(title = "APP 生成的二步验证验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "125612")
@NotBlank(message = "二步验证验证码不能为空")
private String code;
@@ -18,10 +18,10 @@ public class LoginTwoFactorAuthenticatorResult implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(name = "二步验证二维码")
@Schema(title = "二步验证二维码")
private String qrcode;
@Schema(name = "二步验证密钥")
@Schema(title = "二步验证密钥")
private String secret;
}
@@ -16,10 +16,10 @@ public class LoginVerifyImgResult implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(name = "验证码图片", example = "data:image/png;base64,iajsiAAA...")
@Schema(title = "验证码图片", example = "data:image/png;base64,iajsiAAA...")
private String imgBase64;
@Schema(name = "验证码 UUID", example = "c140a792-4ca2-4dac-8d4c-35750b78524f")
@Schema(title = "验证码 UUID", example = "c140a792-4ca2-4dac-8d4c-35750b78524f")
private String uuid;
}
@@ -0,0 +1,4 @@
# product disable swagger and knife4j
springdoc.swagger-ui.enabled=false
springdoc.api-docs.enabled=false
knife4j.enable=false
+1 -2
View File
@@ -1,3 +1,4 @@
spring.profiles.active=prod
spring.config.import=classpath:application-default.properties
zfile.debug=false
@@ -25,8 +26,6 @@ spring.datasource.url=jdbc:sqlite:${zfile.db.path}
#spring.datasource.username=root
#spring.datasource.password=password
spring.profiles.active=prod
mybatis-plus.type-handlers-package=im.zhaojun.zfile.core.config
# -------------- database config end --------------