diff --git a/src-tauri/locales/en.json b/src-tauri/locales/en.json index 6427bc3..a206b5e 100644 --- a/src-tauri/locales/en.json +++ b/src-tauri/locales/en.json @@ -156,6 +156,9 @@ "the_path_is_illegal": "The path is illegal", "same_source_and_target": "Source and target are the same", "bisync": "Bidirectional Sync", + "resync": "Resync", + "force_resync": "Force Resync", + "force_resync_tip": "Use --resync flag to force a full resync. Useful for first-time setup or when sync state is corrupted.", "add_storage": "Add Storage", "add_mount": "Add Mount", "add_task": "Add Task", diff --git a/src-tauri/locales/zh-cn.json b/src-tauri/locales/zh-cn.json index 723bdae..d75b425 100644 --- a/src-tauri/locales/zh-cn.json +++ b/src-tauri/locales/zh-cn.json @@ -156,6 +156,9 @@ "the_path_is_illegal": "路径不合法", "same_source_and_target": "源和目标相同", "bisync": "双向同步", + "resync": "重新同步", + "force_resync": "强制重新同步", + "force_resync_tip": "使用 --resync 标志强制完全重新同步。首次设置或同步状态损坏时使用。", "add_storage": "添加存储", "add_mount": "添加挂载", "add_task": "添加任务", diff --git a/src-tauri/locales/zh-hant.json b/src-tauri/locales/zh-hant.json index c9b2b9b..2571b19 100644 --- a/src-tauri/locales/zh-hant.json +++ b/src-tauri/locales/zh-hant.json @@ -128,6 +128,9 @@ "the_path_is_illegal": "路徑不合法", "same_source_and_target": "源和目標相同", "bisync": "雙向同步", + "resync": "重新同步", + "force_resync": "強制重新同步", + "force_resync_tip": "使用 --resync 標誌強制完全重新同步。首次設定或同步狀態損壞時使用。", "add_storage": "添加存儲", "add_mount": "添加掛載", "add_task": "添加任務", diff --git a/src/page/mount/add.tsx b/src/page/mount/add.tsx index f8b23e7..ff89729 100644 --- a/src/page/mount/add.tsx +++ b/src/page/mount/add.tsx @@ -218,13 +218,18 @@ export default function AddMount_page() { if (mode === 'off' || mode === 'minimal') { next.CacheMaxSize = 1073741824 // 1GB next.WriteBack = 1000000000 // 1s + next.ReadAhead = 4194304 // 4MB + next.DirCacheTime = 30000000000 // 30s } else if (mode === 'writes') { next.CacheMaxSize = 10737418240 // 10GB next.WriteBack = 5000000000 // 5s + next.ReadAhead = 33554432 // 32MB + next.DirCacheTime = 120000000000 // 2min } else { next.CacheMaxSize = 21474836480 // 20GB next.WriteBack = 15000000000 // 15s - next.ReadAhead = 8388608 // 8MB + next.ReadAhead = 134217728 // 128MB + next.DirCacheTime = 300000000000 // 5min } setParameters({ ...parameters, vfsOpt: next }) vfsOptFormHook?.setFieldsValue(next) @@ -339,6 +344,14 @@ export default function AddMount_page() { fuse-t macfuse + {/* FUSE-T 安全提示 */} + {parameters.mountOpt.MountType === 'fuse-t' && ( + + )} )} @@ -400,6 +413,14 @@ export default function AddMount_page() { fuse-t macfuse + {/* FUSE-T 安全提示 */} + {parameters.mountOpt.MountType === 'fuse-t' && ( + + )} )} diff --git a/src/page/storage/add.tsx b/src/page/storage/add.tsx index b8ea628..92b67ef 100644 --- a/src/page/storage/add.tsx +++ b/src/page/storage/add.tsx @@ -194,9 +194,27 @@ function AddStorage_page() { {/* 存储介绍 */} {storageTypeName ? ( - - {t(storageInfo.description)} - + <> + + {t(storageInfo.description)} + + {/* WebDAV 路径提示 */} + {storageInfo.type.toLowerCase().includes('webdav') && ( + + )} + {/* 百度网盘 Token 提示 */} + {storageInfo.type.toLowerCase().includes('baidunetdisk') && ( + + )} + ) : ( searchStr && searchStr.toLowerCase().includes('nfs') && ( { // 检测token相关错误(如百度网盘refresh token过期) const errorStr = String(lastError) - if (errorStr.includes('refresh_token') || errorStr.includes('token') || errorStr.includes('auth')) { + if (errorStr.includes('refresh_token') || errorStr.includes('token') || errorStr.includes('auth') || + errorStr.includes('empty token') || errorStr.includes('wrong refresh token')) { logger.warn(`Storage ${name} may have token issues: ${errorStr}`, 'StorageManager') return { total: -3, free: -3, used: -3 } // 特殊标记:token错误 }