OpenList:社区驱动的多存储聚合文件列表程序

1. 项目简介
OpenList 是一款开源文件列表程序,它源自 AList 社区分支,在原项目变更归属之后,由 OpenListTeam 独立接管维护,坚持完全开源、修改透明的治理原则,无官方付费版本,规避闭源衍生项目带来的信任风险。
项目的核心定位是统一网关:对接各类云盘与存储协议,把分散的存储资源收拢到同一个 Web 页面中浏览、管理与分享。支持容器化快速部署,适配 NAS、服务器、边缘函数等多种运行环境,同时配套官方桌面端、移动端、Worker 边缘版本,形成完整生态。项目采用 AGPL-3.0 开源协议,若对外提供托管服务,需要公开修改后的源代码。
仓库地址:https://github.com/OpenListTeam/OpenList
2. 核心技术栈
后端主体使用 Go 语言,基于 Gin Web 框架构建,搭配 GORM 作为 ORM 组件,Cobra 实现命令行管理;前端使用 SolidJS 开发,轻量化且加载性能优秀。
主要依赖组件:
Gin:高性能 Go HTTP 服务框架,负责路由与接口
GORM:数据库 ORM,支持多种数据库存储配置
Cobra:命令行工具,提供启动、迁移、运维指令
Gorilla Websocket:实时通信,用于任务进度推送
Bleve:可选全文检索引擎,提供文件搜索能力
quic-go:可选 HTTP/3 支持,优化大文件传输
各类存储 SDK:阿里云 OSS、对象存储、网盘官方 SDK、SFTP/SMB/WebDAV 客户端
3. 主要功能特性
3.1 多存储后端聚合
内置四十余种存储驱动,覆盖国内主流网盘、国际云盘以及标准存储协议:阿里云盘、百度网盘、115 网盘、夸克网盘、天翼云盘、OneDrive、Dropbox、Mega、S3 兼容对象存储、Azure Blob、WebDAV、FTP、SFTP、SMB 等。同一实例可以挂载多个不同存储,实现一站式管理。
3.2 文件基础能力
在线预览:支持图片、视频、音频、PDF、Markdown、代码、Office 文档直接预览,无需下载;
文件操作:上传、下载、重命名、移动、删除、新建目录;
跨存储复制:支持在两个不同存储之间直接转存文件,流量在服务端完成,不占用本地带宽;
离线下载:支持链接离线拉取文件到挂载存储。
3.3 权限与分享控制
文件夹密码保护、访客隐藏规则,可通过正则隐藏指定文件目录;
生成分享链接,自定义有效期、提取码;
用户账户体系,区分管理员与普通用户,精细化分配存储访问权限;
内置 WebDAV 服务,支持各类 WebDAV 客户端挂载访问所有聚合存储。
3.4 多样化部署方案
Docker 部署:最简单主流方案,一条命令启动;
源码编译:适合定制化修改;
Worker 边缘部署:基于 Hono+TS,运行在 Cloudflare Workers、阿里云 ESA 等边缘平台;
配套客户端:官方 Tauri 桌面端、Flutter 移动端,支持服务管理、本地挂载、进程监控。
3.5 附加特性
文件全文索引搜索;
HTTP/3、WebSocket 传输优化;
PGP 加密存储适配;
完善的迁移工具,支持从原版 AList 平滑迁移配置与数据。
4. 典型使用场景
个人网盘聚合:把多个网盘统一入口,不用切换多个 App;
私有文件分享站:搭建文件分享网关,对外分发资料,设置提取码与时效;
NAS 配套服务:在 NAS 上部署,整合本地存储与云端网盘;
工作室素材库:团队统一访问多源素材存储,通过 WebDAV 对接设计软件;
边缘轻量服务:使用 Worker 版本,无服务器成本搭建轻量化文件列表。
开发者:学习 Go Web、多存储适配器设计、WebDAV 服务实现、边缘部署方案。
5. 获取与部署
项目 Releases 提供预编译二进制包,推荐使用 Docker Compose 快速部署;也可以参考官方文档编译源码,或者使用 Worker 版本部署到边缘平台。配套桌面、移动端客户端在 OpenListTeam 组织下独立仓库维护。项目文档站点提供详细安装教程、存储驱动配置、迁移指南。
6. 总结
OpenList 延续了文件聚合网关的实用能力,同时解决了社区对上游项目的信任顾虑,依靠开放透明的社区治理持续迭代。丰富的存储驱动、灵活的部署形态、完善的权限分享功能,使其成为个人与小团队搭建统一文件入口的优选开源方案。


