🗂️A file list/WebDAV program that supports multiple storages, powered by Gin and Solidjs. / 一个支持多存储的文件列表/WebDAV程序,使用 Gin 和 Solidjs。
Go to file
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
.github chore(auto_lang): update Go version in auto_lang workflow 2026-05-15 18:50:59 +08:00
cmd Merge branch 'main' into feature/frp-support 2026-04-19 10:26:24 +08:00
drivers fix(guangyapan): resolve offline root folder lookup (#9516) 2026-05-15 21:08:50 +08:00
internal Merge pull request #9503 from AlistGo/fix/guangyapan-sort-settings 2026-05-15 18:32:15 +08:00
pkg fix(fs): block path traversal in handlers 2026-01-30 16:06:51 +08:00
public fix: embed all files of dist 2024-02-03 19:44:50 +08:00
server feat(api): add virtual_path field on fs/list and fs/get responses 2026-05-29 10:33:43 +08:00
wrapper feat: add windows/arm64 target (close #3308) 2023-02-09 19:52:40 +08:00
.air.toml feat: add doge driver (#6201) 2024-03-25 22:53:44 +08:00
.gitignore feat: add doge driver (#6201) 2024-03-25 22:53:44 +08:00
build.sh fix: dead link 2025-06-27 23:58:52 +08:00
CODE_OF_CONDUCT.md docs: Create CODE_OF_CONDUCT.md [skip ci] 2022-09-10 22:23:05 +08:00
CONTRIBUTING.md docs: update go version 2023-07-27 18:32:33 +08:00
docker-compose.yml feat!: listen to both http & https (#4536) 2023-06-11 18:17:37 +08:00
Dockerfile fix(docker_release): avoid duplicate occupation in docker image (#8393 close #8388) 2025-04-19 14:26:19 +08:00
Dockerfile.ci Update Dockerfile.ci (#9230) 2025-07-29 18:35:47 +08:00
entrypoint.sh fix: shebang of entrypoint.sh (#8408) 2025-04-27 19:56:34 +08:00
go.mod fix: CVE-2026-34986 security vulnerability 2026-05-22 09:29:48 +00:00
go.sum fix: CVE-2026-34986 security vulnerability 2026-05-22 09:29:48 +00:00
LICENSE chore: add windows bin to gitignore 2022-04-18 18:31:10 +08:00
main.go feat: use cobra and add some command 2022-08-07 13:09:59 +08:00
README_cn.md feat(drivers): add ProtonDrive driver (#9331) 2025-09-30 14:18:58 +08:00
README_ja.md feat(drivers): add ProtonDrive driver (#9331) 2025-09-30 14:18:58 +08:00
README.md feat(drivers): add ProtonDrive driver (#9331) 2025-09-30 14:18:58 +08:00
renovate.json fix(deps): update dependencies by renovate[bot] (#2344) 2022-11-17 08:49:15 +08:00

logo

🗂️A file list program that supports multiple storages, powered by Gin and Solidjs.


English | 中文 | 日本語 | Contributing | CODE_OF_CONDUCT

Features

Document

https://alistgo.com/

API Documentation (via Apifox):

https://alist-public.apifox.cn/

Demo

https://al.nn.ci

Discussion

Please go to our discussion forum for general questions, issues are for bug reports and feature requests only.

Sponsor

AList is an open-source software, if you happen to like this project and want me to keep going, please consider sponsoring me or providing a single donation! Thanks for all the love and support: https://alistgo.com/guide/sponsor.html

Special sponsors

  • VidHub - An elegant cloud video player within the Apple ecosystem. Support for iPhone, iPad, Mac, and Apple TV.

Contributors

Thanks goes to these wonderful people:

Contributors

License

The AList is open-source software licensed under the AGPL-3.0 license.

Disclaimer

  • This program is a free and open source project. It is designed to share files on the network disk, which is convenient for downloading and learning Golang. Please abide by relevant laws and regulations when using it, and do not abuse it;
  • This program is implemented by calling the official sdk/interface, without destroying the official interface behavior;
  • This program only does 302 redirect/traffic forwarding, and does not intercept, store, or tamper with any user data;
  • Before using this program, you should understand and bear the corresponding risks, including but not limited to account ban, download speed limit, etc., which is none of this program's business;
  • If there is any infringement, please contact me by email, and it will be dealt with in time.

@GitHub · @TelegramGroup · @Discord