OpenList 是 AList 的社区分支,仓库简介写着「A new AList Fork to Anti Trust Crisis」。它干的活和 AList 一样:把阿里云盘、百度网盘、夸克、OneDrive、本地目录这些地方挂到一个地址后面,用一套文件列表浏览。下载是单文件 exe,双击跑起来就有网页。
92 MB 一个文件,3.14 秒起来
Windows 版分 lite 和完整版,amd64 的 lite 包 32,842,888 字节,解开就一个 openlist.exe,96,381,440 字节。前端页面、图标、语言包全在里面,没有外置的 dist 目录要配。
openlist-windows-amd64-lite.zip 32,842,888 字节
└─ openlist.exe 96,381,440 字节
进程到首页返回 200 3.14 秒
数据目录 data\config.json 2,931 字节
数据库 data\data.db 73,728 字节
内存占用(运行中) 66,632 K
首次初始化(建管理员) 20.1 秒
存储驱动下拉 98 项
起服务不用参数,直接 openlist.exe server,默认监听 0.0.0.0:5244。第一次跑会在同目录建 data 目录,config.json 里能看到端口、数据库路径、临时目录这些默认值。
openlist.exe server
start HTTP server @ 0.0.0.0:5244
3.14 秒比同类的 Go 单文件服务慢一截,原因在它启动时要读配置、连数据库、初始化日志切割和内存上限计算,日志里能看到 total memory、min free memory、max block limit 这几行。这些东西 dufs 那种极简工具不碰。
第一次打开先建管理员,花了 20 秒
没有任何初始密码。第一次访问会被带到 /@init 的三步向导:先是配置,然后是管理员帐户,最后完成。管理员表单四个字段:用户名 / 密码 / 确认密码 / 网站标题。
填完点「初始化」,从点击到页面变成「初始化完成」用了 20.1 秒。这一段慢在建表和写初始数据,之后就快了,登录接口 10 毫秒返回 token。
登录成功后页面上会多出一句提示,如果还没挂存储,列表区显示的是 failed get storage: storage not found; please add a storage first,旁边有个「转到存储」的链接。
挂目录只要两个字段,下拉里有 98 个驱动
存储管理在左侧菜单第四项,点「添加」先选驱动。那个下拉列表拉出来是 98 行,从 115 网盘、天翼云盘、阿里云盘、百度网盘、夸克网盘、OneDrive,到 FTP / SFTP / SMB / WebDAV / 对象存储,再到 Cloudreve、Emby、Teambition 这些。选列表里那个本地目录驱动,就是挂本地目录。
选完驱动才展开完整表单,这个驱动真正要填的只有两个:挂载路径和根文件夹路径。挂载路径比如 /local,根文件夹路径填 D:\某个目录,其余序号、备注、缩略图、回收站路径都有默认值。
挂载路径 /local
驱动 本地目录
根文件夹路径 D:\wb_cache\lab\dufs\share
保存后状态 工作中
保存之后回到前台 /local,目录里的东西就出来了。中文文件名、带空格的文件名、zip 和 pdf 的图标都正常。
前台就是一张文件表
界面是卡片式的,白色底、圆角、三列表格:名称 / 大小 / 修改时间。文件夹在前面,图标区分类型,右下角浮着一个对话按钮。顶部只有面包屑和视图切换,右上角一个按钮给管理员进后台。
名称 大小 修改时间
README.txt 328B 2026-10-22 12:25:20
invoice-0921.pdf 120.01K 2026-10-22 12:25:20
photo-raw.jpg 850.00K 2026-10-22 12:25:20
tools.zip 1.56M 2026-10-22 12:25:20
会议记录.md 393B 2026-10-22 12:28:10
图片 - 2026-10-22 12:28:46
大文件 - 2026-10-22 12:30:19
文档 - 2026-10-22 12:23:56
大小单位会自动换算,1.56M、120.01K 这种,不会全都堆成字节数。排序、切换列表和网格视图、多选批量操作都在顶部工具条里,访客看到的是精简版,管理员多几个按钮。
接口 1.6 毫秒,首屏 5.3 秒
列目录接口 /api/fs/list 连测十次,中位 1.6 毫秒,最快 1.2 毫秒,最慢 3.2 毫秒。这个数说明后端读完目录就返回了,没有多余处理。
| 项目 | 毫秒 |
|---|---|
| fs/list 中位 | 1.6 |
| fs/list 最快 | 1.2 |
| fs/list 最慢 | 3.2 |
| 首次打开到列表可读 | 5320 |
| 再次打开到列表可读 | 1570 |
| 登录接口 | 10 |
| 文件与占用 | 字节 / KB |
|---|---|
| lite 压缩包 | 32842888 |
| 解出的 exe | 96381440 |
| config.json | 2931 |
| data.db | 73728 |
| 运行中内存(KB) | 66632 |
首屏 5320 毫秒这个数不好看,但它包含浏览器下资源、解析 JS、渲染列表的全过程,第二次走缓存就降到 1570 毫秒。后端接口本身是毫秒级,慢在前端包体和渲染上。
默认不对外,匿名进来是 401
存储建好之后,直接拿链接去下载会失败。请求 /d/local/README.txt 不带凭据,返回 401,响应体 362 字节。带上登录后拿到的 token 也一样,说明这一版对下载路径的鉴权比浏览更严。
GET /d/local/README.txt 无凭据 401
GET /d/local/README.txt 带 token 401
POST /api/fs/list 带登录态 200
PROPFIND /dav/ 无凭据 401
WebDAV 在同一个端口的 /dav/ 下面,服务是开着的。拿 Windows 的 net use 去挂,返回的是系统错误 67「找不到网络名」,UNC 写法 \\127.0.0.1@5244\dav 也一样。用 curl 直接发 PROPFIND 拿到 401,说明服务在,报错卡在认证这一层,本文没继续往下调。
要用的话,最稳的是先给用户配好权限,再让访客用自己的账号登一次。想一上来就公开,得在用户和权限里放开,不能指望默认值。
它是 AList 的 fork,选它要注意什么
仓库描述那句「Anti Trust Crisis」就是对 AList 被收购那件事的回应。代码是从 AList 分出来的,界面、配置格式、API 路径、data 目录结构都沿用,所以原来那份 config.json 和数据库能直接搬过来用,迁移成本很低。
代价是版本号自己走:AList 停在 v3,OpenList 已经到 v4.2.7。两边的问题单、文档、驱动更新节奏都不一样,遇到 bug 别拿 AList 的答案硬套。
它适合的场景很明确:手上有一堆网盘账号,想在一个页面里统一浏览和搜索,或者给家里人开一个只读入口。反过来,只想在局域网里传几个文件,它太重了,一个 92 MB 的程序干这个不值当。
没测的部分列一下,6 项:真实网盘挂载(要账号授权)/ WebDAV 客户端打通 / 离线下载 / 多用户权限分配 / 索引与全文搜索 / HTTPS 反向代理,都没跑。










