feat: sharelink 资源下载管理插件 v1.1.0

- 下载资源管理与 /download/{slug} 下载链接
- 下载统计(次数/去重人数/明细/CSV 导出)
- 按资源邮箱验证(Halo 通知中心发信,互认评论插件已验证邮箱)
- 本地附件防直链(/upload/** 404)
- 文章引用扫描
- Console 前端:Vue3 + ui-plugin-bundler-kit
This commit is contained in:
shirainbown
2026-08-03 00:25:15 +08:00
commit aa4befa0ff
62 changed files with 7838 additions and 0 deletions
@@ -0,0 +1,75 @@
apiVersion: v1alpha1
kind: Setting
metadata:
name: sharelink-settings
spec:
forms:
- group: basic
label: 基本设置
formSchema:
- $formkit: number
name: tokenTtlSeconds
key: tokenTtlSeconds
label: 下载令牌有效期(秒)
help: 访客在下载页获取下载令牌后,需在该时间内开始下载。
min: 10
max: 600
value: 60
validation: required
- $formkit: number
name: dedupeWindowMinutes
key: dedupeWindowMinutes
label: 免验证资源下载去重窗口(分钟)
help: 不需要邮箱验证的资源,同一 IP 在该时间窗口内重复下载只计 1 次。
min: 0
max: 1440
value: 10
validation: required
- group: emailVerify
label: 邮箱验证
formSchema:
- $formkit: number
name: codeExpireMinutes
key: codeExpireMinutes
label: 验证码有效期(分钟)
min: 1
max: 30
value: 10
validation: required
- $formkit: number
name: resendIntervalSeconds
key: resendIntervalSeconds
label: 重发间隔(秒)
min: 30
value: 60
validation: required
- $formkit: number
name: dailySendLimitPerEmail
key: dailySendLimitPerEmail
label: 同一邮箱每日发送上限
min: 1
max: 50
value: 5
validation: required
- $formkit: number
name: maxVerifyAttempts
key: maxVerifyAttempts
label: 验证码最大错误尝试次数
min: 1
max: 10
value: 5
validation: required
- $formkit: number
name: ipHourlySendLimit
key: ipHourlySendLimit
label: 同一 IP 每小时发送上限
min: 1
max: 200
value: 20
validation: required
- $formkit: checkbox
name: trustCommentVerified
key: trustCommentVerified
label: 信任评论插件已验证的邮箱
help: 开启后,已在评论组件中通过邮箱验证的访客,下载需要验证的资源时无需再次验证(需安装并启用评论组件)。
value: true