Repository navigation
Conversation
4 tasks done
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
openlist-work | ee136b6 | Oct 11 2026, 05:55 AM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
openlist-tsworkers | ee136b6 | Oct 11 2026, 05:57 AM |
pikachuren
force-pushed
the
fix/139-resolve-catalog-id-silent-fallback
branch
from
October 11, 2026 05:49
1edbbde to
d122278
Compare
…l results 1. drivers/139/driver.ts — resolveCatalogId() used `break` when a path segment was not found in the folder listing, silently returning the last successfully resolved catalogId (typically the root). list() and get() then appeared to succeed but returned root directory contents for any path whose intermediate folder could not be matched, producing the 'always shows root' symptom. Changed to `throw` with a message that includes the missing segment and full path so misconfigured account types are immediately visible in logs. 2. server/fs.ts — when resolvePath() returns isVirtual=true the storage object is null and cacheExpiration was set to `undefined`. The front end interprets undefined as a non-zero TTL and caches the Virtual result; subsequent requests hit the cache and keep showing the Virtual provider even after the real storage comes online. Fixed by returning 0 for Virtual paths so the front end never caches them.
pikachuren
force-pushed
the
fix/139-resolve-catalog-id-silent-fallback
branch
from
October 11, 2026 05:53
d122278 to
ee136b6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fix(139): throw instead of silently break when folder not found in path
问题描述
挂载 139 云盘并访问子目录(例如
/DISK1-4T/139)时,文件列表始终返回根目录内容,无法正常列出子目录文件。根本原因
resolveCatalogId()负责将虚拟路径逐段解析为实际的catalogID。当某个路径段在文件夹列表中找不到时,原代码使用break静默退出循环:break会让方法悄无声息地返回当前已解析到的最后一个有效 catalogId(通常就是根目录),导致list()和get()表面上返回 200,但内容是根目录而非目标路径,用户完全无从得知出了什么问题。常见触发场景:存储配置的
type字段未填写(应填personal或personal_new),导致 API 版本选错,文件夹列表为空,路径第一段即匹配失败。修复方案
将
break改为throw,附带明确的错误信息(包含未找到的路径段名称和完整路径):修复效果
list()/get()返回明确的错误,前端提示错误而非显示错误内容变更范围
src/backend/drivers/139/driver.tsbreak→throw new Error(...)(+3/-1)测试
type字段留空的老账号):之前返回根目录,现在返回明确错误 ✅关联
复现环境:https://openlist-web-dpw1236efa31.edgeone.cool/139/DISK1-4T/139