>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
Go

为什么开发者分叉 AList 并创建了 OpenList

想象一下典型工作日的混乱场景。备份文件堆积在 S3 桶中,个人档案存放在 Yandex Disk,Google Drive 里散落着几份文档,而家里的 NAS 运行着 SMB 共享。要找到正确的文件,你得同时打开十几个浏览器标签页,或者启动一堆专用工具。

长期以来,AList 一直是这种情况下的首选工具。这个 Go 应用可以将几乎任何存储挂载到统一文件系统中,提供简洁的网页界面和内置的 WebDAV 服务器。但最近,该项目出现了信任危机,涉及部分代码闭源和开发路线图不明确的问题。作为回应,OpenList 的创建者分叉了原始仓库,锁定 AGPL-3.0 许可证,并将控制权移交给社区。

让我们来看看这个项目现在提供了什么,它有什么用处,以及如何帮助整理散落的文件。

OpenList 能做什么

从本质上讲,它是一个单一的二进制文件,充当你的驱动器与用户之间的中间层。你在管理面板中连接云服务提供商账号,输出结果是一个统一的文件目录。

支持的存储后端列表令人印象深刻。除了本地磁盘、S3、FTP、SFTP、SMB 和 WebDAV 等标准选项外,该工具还支持数十种云服务:

  • Yandex Disk 和 Google Drive
  • OneDrive 和 SharePoint
  • Dropbox 和 Mega.nz
  • ProtonDrive 和 GitHub
  • 中国服务商如阿里云盘、123 盘、百度网盘和 115

更重要的是,这款应用不仅仅显示文件列表。网页界面包含一个实用的查看器。PDF 文档、Markdown、各种编程语言的源代码以及办公文件(.docx、.xlsx、.pptx)都可以直接在浏览器中阅读。视频和音频配有支持字幕和歌词的播放器。图片可以以画廊模式浏览。

实际应用价值

这个项目最强的特性是通过 WebDAV 流式传输所有内容。这立刻打开了几个用例。

无需本地磁盘存储的媒体服务器

你可以将 Google Drive 或 Yandex Disk 连接到该工具,启用 WebDAV,然后将媒体播放器(如电视上的 Infuse、Kodi 或 VLC)指向该地址。视频文件直接从云端流式传输。该应用通过 HTTP 重定向(302 重定向)或代理流,因此本地服务器不会用重型媒体内容填满内存和磁盘。

云端之间直接传输文件

通常情况下,要将 20 GB 从 S3 移动到 Google Drive,你必须先下载到笔记本电脑,然后再上传回去。如果你在连接良好的 VPS 上运行 OpenList,它将在自己的界面内在不同提供商之间移动文件。

为团队准备好的文件托管服务

需要给客户或同事一个下载大文件的链接?界面会生成直接永久链接。你可以密码保护单个文件夹,为不同用户设置访问权限,或允许向特定目录进行匿名文件上传。

技术细节与部署

该项目使用 Go 编写,因此编译后的二进制文件占用资源极少。对于连接几个驱动器的简单设置,100-200 MB 内存就足够了。该工具甚至在最便宜的单板计算机或弱配置 VPS 实例上也能运行良好。

部署服务最简单的方式是 Docker。启动它只需要一条命令:

启动后,网页面板可在 5244 端口访问。首次启动时管理密码会在容器日志中生成,但使用命令 docker exec -it openlist ./openlist admin 很容易重置。

如果你手边没有服务器,作者建议使用通过 Cloudflare Workers 代理的方案,不过为了完整功能,运行容器仍然更方便。

总结

这个分叉项目发展得相当不错。团队定期发布更新,修复中国和国际云服务的破坏性 API 变更,并接受 pull request。

如果你厌倦了在不同的云服务之间切换,或者想为家庭影院构建自己的流媒体方案,OpenList 绝对值得一试。它节省时间,无需在工作设备上保留额外软件。

相关项目