release: v1.4.1 — 上传策略设置、保留原图与上传 tagNames
GitHub Release / release (push) Canceled after 0s
Publish Docker image / build (linux/amd64, ubuntu-latest, amd64) (push) Canceled after 0s
Publish Docker image / build (linux/arm64, ubuntu-24.04-arm, arm64) (push) Canceled after 0s
Publish Docker image / merge (push) Canceled after 0s
ci / ci (22, ubuntu-latest) (push) Canceled after 0s

管理员可在设置页配置上传大小、格式、限流与保留原图;上传 API 支持按标签名称打标。
This commit is contained in:
O96u committed 2026-09-16 10:03:05 +08:00
1 parent d0eb364645
commit 6cc4f27f7d
25 files changed
+1354 -172

No files matched your search

+30 -4
View File
@@ -286,12 +286,12 @@
"back": "Back to upload",
"processing": "Image processing",
"clientCompress": "Client-side compression",
"clientCompressHint": "Compress in the browser before upload (server still converts to WebP)",
"clientCompressHint": "Compress in the browser before upload. The server may still convert to WebP unless “Preserve originals” is enabled above.",
"autoDeletePrefix": "Auto-delete after",
"autoDeleteSuffix": "days",
"autoDeleteHint": "Only affects images uploaded after enabling; existing images are kept",
"webpQuality": "WebP quality",
"webpQualityHint": "Client compression quality (1–100); requires client-side compression",
"webpQualityHint": "Quality for client-side WebP pre-compression; higher values mean better quality and larger files.",
"current": "Current: {n}",
"qualityHigh": "High quality",
"qualityMedium": "Medium quality",
@@ -414,7 +414,31 @@
"envOverride": "Overridden by environment variable; cannot edit in UI",
"saved": "Settings saved",
"saveFailed": "Failed to save settings",
"loadFailed": "Failed to load settings"
"loadFailed": "Failed to load settings",
"uploadLimits": "Upload limits",
"uploadLimitsHint": "Site-wide upload policy and your personal convenience options. Applies after save.",
"imageProcessingHint": "Site-wide format conversion and personal compression/cleanup.",
"serverPolicy": "Site-wide",
"personalPreference": "Personal",
"uploadRateGroup": "Upload rate limits",
"minutesUnit": "min",
"uploadMaxFileSize": "Max file size",
"uploadMaxFileSizeHint": "Uploads larger than this are rejected (1–100 MB).",
"allowedMimeTypes": "Allowed image formats",
"allowedMimeTypesHint": "Keep at least one format enabled. The server validates file signatures, not just extensions.",
"preserveOriginalUpload": "Preserve originals (disable WebP conversion)",
"preserveOriginalUploadHint": "When enabled, JPEG/PNG/GIF uploads are stored as-is instead of converting to WebP.",
"rateLimits": "Rate limits",
"rateLimitsHint": "Protect against upload abuse and login brute force.",
"loginRateLimitsHint": "Protect the login endpoint from brute-force attempts.",
"uploadRateFootnote": "Returns 429 when exceeded within the window. Token uploads are counted separately.",
"loginRateFootnote": "Returns 429 when exceeded within the window.",
"uploadRateIpMax": "Upload limit (per IP)",
"uploadRateTokenMax": "Upload limit (per token)",
"uploadRateWindowMinutes": "Upload window (minutes)",
"loginRateMax": "Login limit (per IP)",
"loginRateWindowMinutes": "Login window (minutes)",
"rateLimitsFootnote": "Exceeding the limit within the window returns HTTP 429. Token uploads are counted separately."
},
"storage": {
"title": "Storage",
@@ -854,7 +878,9 @@
"image": "Primary upload field",
"file": "Compatibility field, single file",
"files": "Compatibility field, multiple files",
"token": "Twikoo protocol form token"
"token": "Twikoo protocol form token",
"tagIds": "Optional JSON array or repeated fields; tag images by ID after upload",
"tagNames": "Optional JSON array or comma-separated names; creates missing tags, reuses existing"
},
"list": {
"limit": "Page size, default 20, max 100",
+29 -4
View File
@@ -286,12 +286,12 @@
"back": "返回上传",
"processing": "图片处理",
"clientCompress": "客户端预压缩",
"clientCompressHint": "在上传前于浏览器端压缩图片,减少上传体积(服务端仍会转 WebP)。",
"clientCompressHint": "上传前在浏览器端压缩以减小体积;若未开启上方「保留原图」,服务端仍可能转为 WebP。",
"autoDeletePrefix": "自动删除超过",
"autoDeleteSuffix": "天的图片",
"autoDeleteHint": "自动清理指定天数前上传的图片,仅对开启后新上传的图片生效。",
"webpQuality": "WebP 压缩质量",
"webpQualityHint": "转换为 WebP 格式时的图片质量,数值越高画质越好、体积越大。",
"webpQualityHint": "客户端预压缩为 WebP 时的质量;数值越高画质越好、体积越大。",
"current": "当前:{n}",
"qualityHigh": "高质量",
"qualityMedium": "中等质量",
@@ -414,7 +414,31 @@
"envOverride": "该项已由环境变量覆盖,无法在后台修改",
"saved": "服务器配置已保存",
"saveFailed": "保存服务器配置失败",
"loadFailed": "加载设置失败"
"loadFailed": "加载设置失败",
"uploadLimits": "上传限制",
"uploadLimitsHint": "全站上传策略与个人上传便捷选项,保存后立即生效。",
"imageProcessingHint": "全站格式转换与个人端压缩、清理策略。",
"serverPolicy": "全站策略",
"personalPreference": "个人偏好",
"uploadRateGroup": "上传限流",
"minutesUnit": "分钟",
"uploadMaxFileSize": "单文件大小上限",
"uploadMaxFileSizeHint": "超过此大小的图片将被拒绝上传(1–100 MB)。",
"allowedMimeTypes": "允许的图片格式",
"allowedMimeTypesHint": "至少保留一种格式;服务端会校验文件签名,不仅看扩展名。",
"preserveOriginalUpload": "保留原图(关闭 WebP 转换)",
"preserveOriginalUploadHint": "开启后上传的 JPEG/PNG/GIF 不再转为 WebP,按原格式存储;关闭时可节省空间。",
"rateLimits": "限流",
"rateLimitsHint": "防止恶意刷上传或暴力登录。",
"loginRateLimitsHint": "防止登录接口被暴力尝试。",
"uploadRateFootnote": "窗口期内超过次数将返回 429;带 Token 的上传单独计数。",
"loginRateFootnote": "窗口期内超过次数将返回 429。",
"uploadRateIpMax": "上传限流(每 IP)",
"uploadRateTokenMax": "上传限流(每 Token)",
"uploadRateWindowMinutes": "上传限流窗口(分钟)",
"loginRateMax": "登录限流(每 IP)",
"loginRateWindowMinutes": "登录限流窗口(分钟)",
"rateLimitsFootnote": "窗口期内超过次数将返回 429。带 Token 的上传单独计数。"
},
"storage": {
"title": "存储设置",
@@ -855,7 +879,8 @@
"file": "兼容字段,单图上传",
"files": "兼容字段,多图上传",
"token": "Twikoo 协议兼容,表单 token",
"tagIds": "可选,JSON 数组或重复字段,上传后自动打标"
"tagIds": "可选,JSON 数组或重复字段,上传后按 ID 打标",
"tagNames": "可选,JSON 数组或逗号分隔;名称不存在则自动创建,存在则复用"
},
"list": {
"limit": "每页条数,默认 20,最大 100",