alist/server
okatu-loli e36c68e4db feat(api): add virtual_path field on fs/list and fs/get responses
The existing `path` field on ObjResp/ObjLabelResp returns whatever the
storage driver writes into model.Object.Path, and that contract has
quietly diverged across drivers:

- Local sets it to the physical disk path
  (e.g. `/data/data/com.termux/files/home/storage/download/foo.tar.gz`)
- Cloud drivers (Quark / Baidu / 115 / …) leave it empty
- Some other drivers fill it with their own internal id-like path

Clients that need the canonical alist virtual path (e.g. for `share`,
`fs/copy`, navigation) cannot rely on `path` alone. The frontend has
been working around this with branchy code such as
`pathJoin(getCurrentPath(), name)` in some places and
`obj.path` in others; one such mismatch caused a share regression on
Local mounts whose root_folder_path differs from the mount path
(visible as `failed get storage: storage not found; rawPath: ...`).

Add a `virtual_path` field that is always the alist virtual path for
the object:

- `toObjsResp`  -> `FixAndCleanPath(stdpath.Join(parent, obj.Name))`
- `FsGet`       -> `FixAndCleanPath(reqPath)`

`path` is left untouched for backwards compatibility. Clients should
prefer `virtual_path` for anything that talks to other alist APIs.
2026-05-29 10:33:43 +08:00
..
common feat(lark): add export tools API (#9511) 2026-05-15 16:47:26 +08:00
ftp feat: enhance permission control and label management (#9215) 2025-07-26 09:51:59 +08:00
handles feat(api): add virtual_path field on fs/list and fs/get responses 2026-05-29 10:33:43 +08:00
mcp add mcp support 2026-04-15 20:50:27 +08:00
middlewares fix: unescape URL path to handle '#' in filenames 2026-02-20 23:23:12 +03:00
s3 refactor(net): pass request header (#8031 close #8008) 2025-03-01 18:35:34 +08:00
sftp feat(sftp-server): do not generate host key until first enabled (#7734) 2024-12-30 22:54:37 +08:00
static fix: static page to limit request method (#7745 close #7667) 2024-12-30 22:49:18 +08:00
webdav feat(proxy): Added configurable signature for down proxy URLs 2025-12-21 15:59:26 +08:00
debug.go fix(archive): use another sign for extraction (#7982) 2025-03-01 18:34:33 +08:00
ftp.go feat: enhance permission control and label management (#9215) 2025-07-26 09:51:59 +08:00
router.go feat: add GuangYaPan offline download (#9505) 2026-05-15 16:53:35 +08:00
s3.go fix(s3): don't bind s3 port if s3 is not enabled (#6291) 2024-04-03 10:09:48 +08:00
sftp.go feat: enhance permission control and label management (#9215) 2025-07-26 09:51:59 +08:00
webdav.go fix: reduce WebDAV logging for NotFoundError 2026-03-06 16:14:23 +08:00