release: v1.1.0 — S3 multi-backend storage and admin UI
ci / ci (22, ubuntu-latest) (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
GitHub Release / release (push) Canceled after 0s

This commit is contained in:
O96u committed 2026-08-26 14:49:46 +08:00
1 parent 7c45a78572
commit acc64751ef
46 files changed
+4005 -480

No files matched your search

+84 -1
View File
@@ -10,6 +10,7 @@
"cancel": "Cancel",
"copy": "Copy",
"delete": "Delete",
"edit": "Edit",
"search": "Search",
"refresh": "Refresh",
"back": "Back",
@@ -17,12 +18,14 @@
"notConfigured": "(not configured)",
"countImages": "{count} images",
"itemsUnit": "items",
"imagesUnit": "images"
"imagesUnit": "images",
"more": "More"
},
"nav": {
"api": "API",
"stats": "Stats",
"settings": "Settings",
"storage": "Storage",
"menu": "Menu",
"language": "Language",
"appearance": "Appearance",
@@ -191,6 +194,86 @@
"saveFailed": "Failed to save settings",
"loadFailed": "Failed to load settings"
},
"storage": {
"title": "Storage",
"subtitle": "New uploads go to the active backend; existing images keep their backend",
"activeBackend": "Active backend",
"backendLocal": "Local disk",
"backendCloud": "Cloud storage",
"backendS3": "Cloud storage",
"switchHint": "Switching only affects new uploads",
"provider": "Preset",
"providerR2": "Cloudflare R2",
"providerCos": "Tencent COS",
"providerOss": "Alibaba OSS",
"providerAws": "AWS S3",
"providerCustom": "Custom",
"endpoint": "Endpoint",
"region": "Region",
"bucket": "Bucket",
"prefix": "Key prefix (optional)",
"prefixPlaceholder": "e.g. pichost",
"forcePathStyle": "Force path-style access",
"accessKey": "Access Key",
"secretKey": "Secret Key",
"servingMode": "Serving mode",
"servingProxy": "Proxy (same origin)",
"servingPublic": "Public URL (302 to CDN)",
"servingHint": "In public mode, configure referer protection on CDN/bucket",
"publicUrl": "Public base URL",
"publicUrlPlaceholder": "https://cdn.example.com",
"testConnection": "Test connection",
"testSuccess": "Connection successful",
"testFailed": "Connection failed",
"saved": "Storage settings saved",
"saveFailed": "Failed to save storage settings",
"loadFailed": "Failed to load storage settings",
"envOverride": "Storage is overridden by environment variables",
"pageTitle": "Storage management",
"pageSubtitle": "Manage backends; new uploads go to the default backend",
"addBackend": "Add storage",
"editBackend": "Edit storage",
"formCreateHint": "Configure cloud storage; set as default after saving to receive new uploads",
"formEditHint": "Update connection settings; leave keys blank to keep existing secrets",
"sectionBasic": "Basic",
"sectionConnection": "Connection",
"sectionCredentials": "Credentials",
"sectionAccess": "Access",
"sectionQuota": "Quota",
"advancedOptions": "Advanced",
"servingProxyShort": "Proxy",
"servingPublicShort": "Public",
"backendName": "Display name",
"badgeDefault": "Default",
"badgeDisabled": "Disabled",
"badgeEnabled": "Enabled",
"statTotal": "Total",
"statUsed": "Used",
"statFree": "Free",
"usageRate": "Usage",
"indexImages": "PicHost images {count} · {size}",
"setDefault": "Set as default",
"actionSetDefault": "Default",
"actionTest": "Test",
"disable": "Disable",
"enable": "Enable",
"usageCount": "{count} images",
"quotaTotal": "Plan size",
"quotaPlaceholder": "e.g. 10",
"quotaHint": "Enter your cloud plan size; used space is calculated from PicHost image index",
"quotaRequired": "Enter a valid plan size",
"notConfigured": "Not configured",
"created": "Storage backend added",
"deleted": "Storage backend deleted",
"deleteFailed": "Delete failed",
"deleteBlockedImages": "This backend still has images. Move or delete them before removing the backend.",
"defaultUpdated": "Default backend updated",
"deleteConfirmTitle": "Delete storage",
"deleteConfirmBody": "Delete “{name}”? This cannot be undone.",
"secretsRequired": "Access Key and Secret Key are required for new storage",
"manageStorage": "Manage object storage",
"manageStorageHint": "Configure R2 / S3 / COS backends and URL serving"
},
"stats": {
"title": "Statistics",
"subtitle": "Overview and gallery",
+84 -1
View File
@@ -10,6 +10,7 @@
"cancel": "取消",
"copy": "复制",
"delete": "删除",
"edit": "编辑",
"search": "搜索",
"refresh": "刷新",
"back": "返回",
@@ -17,12 +18,14 @@
"notConfigured": "(未配置)",
"countImages": "{count} 张",
"itemsUnit": "条",
"imagesUnit": "张"
"imagesUnit": "张",
"more": "更多"
},
"nav": {
"api": "API",
"stats": "统计",
"settings": "设置",
"storage": "存储",
"menu": "菜单",
"language": "语言",
"appearance": "外观",
@@ -191,6 +194,86 @@
"saveFailed": "保存服务器配置失败",
"loadFailed": "加载设置失败"
},
"storage": {
"title": "存储设置",
"subtitle": "新上传写入活动后端;已有图片仍按原后端读取",
"activeBackend": "活动后端",
"backendLocal": "本地磁盘",
"backendCloud": "云存储",
"backendS3": "云存储",
"switchHint": "切换仅影响新上传,已有图片不受影响",
"provider": "预设",
"providerR2": "Cloudflare R2",
"providerCos": "腾讯云 COS",
"providerOss": "阿里云 OSS",
"providerAws": "AWS S3",
"providerCustom": "自定义",
"endpoint": "Endpoint",
"region": "Region",
"bucket": "Bucket",
"prefix": "对象前缀(可选)",
"prefixPlaceholder": "例如 pichost",
"forcePathStyle": "强制 Path-Style 访问",
"accessKey": "Access Key",
"secretKey": "Secret Key",
"servingMode": "访问方式",
"servingProxy": "代理(PicHost 同源)",
"servingPublic": "公开 URL(302 到 CDN)",
"servingHint": "公开模式下 Referer 防盗链需在 CDN/桶策略侧配置",
"publicUrl": "公开访问 URL",
"publicUrlPlaceholder": "https://cdn.example.com",
"testConnection": "测试连接",
"testSuccess": "连接成功",
"testFailed": "连接失败",
"saved": "存储配置已保存",
"saveFailed": "保存存储配置失败",
"loadFailed": "加载存储配置失败",
"envOverride": "存储配置已由环境变量覆盖,无法在后台修改",
"pageTitle": "存储管理",
"pageSubtitle": "管理多个存储后端,新上传写入默认后端",
"addBackend": "添加存储",
"editBackend": "编辑存储",
"formCreateHint": "配置云存储连接,保存后可设为默认写入目标",
"formEditHint": "修改连接信息;留空密钥则保持原值",
"sectionBasic": "基本信息",
"sectionConnection": "连接配置",
"sectionCredentials": "访问凭证",
"sectionAccess": "访问方式",
"sectionQuota": "容量配额",
"advancedOptions": "高级选项",
"servingProxyShort": "代理",
"servingPublicShort": "公开",
"backendName": "显示名称",
"badgeDefault": "默认",
"badgeDisabled": "已停用",
"badgeEnabled": "已启用",
"statTotal": "总量",
"statUsed": "已用",
"statFree": "剩余",
"usageRate": "使用率",
"indexImages": "PicHost 图片 {count} 张 · {size}",
"setDefault": "设为默认",
"actionSetDefault": "设默认",
"actionTest": "测试",
"disable": "停用",
"enable": "启用",
"usageCount": "{count} 张图片",
"quotaTotal": "套餐总量",
"quotaPlaceholder": "例如 10",
"quotaHint": "填写云存储套餐总量;已用按 PicHost 图片索引自动统计",
"quotaRequired": "请填写有效的套餐总量",
"notConfigured": "未配置",
"created": "存储后端已添加",
"deleted": "存储后端已删除",
"deleteFailed": "删除失败",
"deleteBlockedImages": "该后端仍有图片,请先迁移或删除图片后再删除",
"defaultUpdated": "默认后端已更新",
"deleteConfirmTitle": "删除存储",
"deleteConfirmBody": "确定删除「{name}」?此操作不可撤销。",
"secretsRequired": "新建存储需填写 Access Key 与 Secret Key",
"manageStorage": "管理对象存储",
"manageStorageHint": "配置 R2 / S3 / COS 等多后端与直链策略"
},
"stats": {
"title": "统计",
"subtitle": "数据概览与图库记录",