banner
约 2,400 字
8 分钟

使用 EdgeOne 免费边缘函数部署 OpenList-Worker 实现网盘挂载

摘要

OpenList 以前至少得有台服务器才能跑,现在官方出了 OpenList-Worker——后端用 TypeScript 重写后跑在边缘函数上,不用服务器、不用 Docker,EdgeOne 免费额度就够。本文走完整流程:Fork 仓库、导入构建、Blob 存储为什么必需、初始化管理员、挂载网盘,以及 302 重定向和几个常见坑。


date created: 星期日, 九月 20日 2026, 9:41:53 上午 date modified: 星期六, 九月 26日 2026, 2:26:17 下午

前言

OpenList 是一个多功能的目录列表工具,支持数十种网盘文件挂载和文件预览、下载、分享等功能,几乎可以部署在所有平台上。

但它之前有个门槛:得有一台服务器,或者至少一个能跑 Docker 的环境。现在官方推出了 OpenList-Worker —— 把原本用 Go 写的后端重写成了跑在边缘函数上的 TypeScript 服务,不再需要任何服务器,也不用 Docker,用 EdgeOne 的免费额度就能跑起来。

我部署了一遍,实测和原版 OpenList 界面、功能都没有区别,网盘挂载、在线播放、分享链接全都正常。这篇文章把完整流程走一遍。

一、准备工作

1.1 Fork 项目仓库

打开官方仓库,把它 Fork 到自己的账号下:

https://github.com/OpenListTeam/OpenList-Worker

💡 提示:Fork 会把整个项目代码完整复制一份到你自己的仓库,后续 EdgeOne 直接从你的仓库拉代码构建。

为什么要先 Fork? 因为部署平台需要有权读取仓库内容。直接部署官方仓库会遇到权限问题(官方文档也特别提到,Cloudflare 上会提示"无法获取存储库内容",解决办法就是先 Fork)。Fork 一份到自己的账号下,读自己的仓库,就没有任何阻碍了。

1.2 注册 EdgeOne 账号

还没有腾讯云 EdgeOne 账号的话,先注册:

https://console.tencentcloud.com/edgeone/makers

💡 提示:EdgeOne Makers 提供免费额度,个人自用完全够。整套方案没有任何需要付费的环节。


二、创建项目并导入仓库

2.1 进入创客控制台

登录 EdgeOne 后,点击顶部导航栏的 Makers,进入项目部署页面:

blog image

2.2 创建新项目

点击 创建项目,选择 导入 Git 仓库:

blog image

2.3 选择 OpenList-Worker 仓库

在仓库列表中找到你刚才 Fork 的 OpenList-Worker 仓库,点击选中:

blog image

2.4 确认构建配置

blog image

这一步其实基本不用改。因为项目根目录里已经放了一份 edgeone.json 配置文件,EdgeOne Makers 会自动读取它,构建参数全都写在里面了:

JSON
{
  "installCommand": "pnpm install --no-frozen-lockfile",
  "buildCommand": "pnpm run build",
  "outputDirectory": "dist",
  "nodeVersion": "22.21.1"
}

也就是说,安装命令、构建命令、输出目录、Node 版本这四项都已经预置好了,你只需要核对一眼、没问题就往下走。

不过 EdgeOne 的自动识别偶尔会抽风,万一界面上的参数是空的或者不对,手动填上这三个就行:

  • 构建命令:pnpm run build

  • 输出目录:dist

  • 安装命令:pnpm install --no-frozen-lockfile

确认无误后,点击创建并部署,等待首次构建完成。首次构建要拉取前端并打包,比平时慢一些,耐心等几分钟。

三、存储配置:为什么必须有 Blob

blog image

普通的静态站点是无状态的,但 OpenList 要记住你挂载了哪些网盘、管理员密码是什么、有哪些分享链接 —— 这些配置必须有个地方存。传统部署方式里,数据存在服务器本地的数据库或磁盘上;而边缘函数没有"本地磁盘"这个概念,函数每次被调用都可能在不同节点上跑,用完就销毁。

所以必须外接一个存储。EdgeOne 的答案是 EdgeOne Blob,这是腾讯云为边缘函数提供的对象存储服务。好消息是,创建项目时 EdgeOne 会自动帮你创建并绑定好一个 Blob 存储,你不用手动去配。

在官方文档那张平台对比表里,EdgeOne Makers 那一行的持久化方案写的就是 EdgeOne Blob / KV —— 也就是说,EdgeOne 上的数据落盘由 Blob 承担,这也是它能做到"免费且可用"的关键。如果这一步的存储没绑定成功,部署后配置会存不住,重启就丢,这是排错时第一个要检查的地方。

💡 提示:同样的道理,Cloudflare Workers 上对应的是 D1 / KV,阿里云 ESA 上是 EdgeKV。平台不同,但都需要一个外接存储来存配置。

四、首次访问与配置

4.1 访问你的网盘

部署成功后,EdgeOne 会分配一个域名(形如 https://your-project.edgeone.dev),点击即可访问。

4.2 初始化管理员账号

第一次打开后台,会自动进入安装向导,在浏览器里设置管理员账号和密码:

blog image

💡 提示:这里不需要像以前那样预先配置 ADMIN_PASS 环境变量,直接在页面上设就行,比以前方便。

4.3 登录管理后台

设置完账号密码,用刚才的凭据登录:

blog image

五、使用 OpenList

5.1 添加自定义域名

为了长期使用,建议绑一个自己的域名,比默认的 edgeone.dev 域名好记,也不受平台域名策略变化影响:

blog image

5.2 添加网盘驱动

之后的操作就和原版 OpenList 完全一样了。进后台添加存储,选网盘类型、填授权信息即可。OpenList-Worker 内置了 78 个存储驱动,常用网盘基本都在里面:

  • 国内网盘:阿里云盘、夸克网盘、百度网盘、115 网盘、123 云盘、天翼云盘、中国移动云盘、迅雷云盘、腾讯微云、蓝奏云、PikPak 等

  • 国际网盘:Google Drive、OneDrive、Dropbox、MEGA、MediaFire、Proton Drive、Yandex Disk 等

  • 对象存储:S3 兼容(AWS / 阿里云 OSS / 腾讯云 COS / MinIO)、WebDAV、FTP、SFTP、SMB 等

  • 网盘程序:AList V3、Cloudreve、可道云 Kodbox、Seafile 等

blog image

💡 提示:建议开启 302 重定向。开了之后,播放视频和下载文件时流量直接从网盘官方服务器流向你的浏览器,不经过 OpenList 这台"中转站"。好处有两个:一是看视频不消耗边缘函数的流量额度,二是速度更快(省掉一次中转)。

常见问题

构建失败怎么办? 先看是不是 Node 版本问题,edgeone.json 里已指定 22.21.1,如果平台没用上就手动设。其次是 pnpm install --no-frozen-lockfile 这个参数别漏,写成默认的 --frozen-lockfile 可能因锁文件与依赖不匹配而失败。

部署后配置存不住? 检查 EdgeOne Blob 存储有没有正常绑定。这是最典型的症状。

能部署到其他平台吗? 可以。官方提供一键部署按钮,支持 EdgeOne Makers(国际站 / 中国站)、Cloudflare Workers,以及阿里云 ESA、Vercel、AWS Lambda。其中 Cloudflare 上用的是 D1 / KV,阿里云 ESA 上是 EdgeKV。

和原作者版 OpenList 有什么区别? 只是运行形态不同:后端从 Go 换成了 TypeScript,跑在边缘函数上;前端还是官方的 OpenList-Frontend(SolidJS),所以界面和交互完全一致。项目由 OpenList 官方团队维护,AGPL-3.0 开源。

最后

我自己已经很久不用 OpenList 了。以前拿它挂载网盘看视频,现在一来大部分播放器都支持直接挂载网盘,二来网盘本身也越来越不好用。

但客观说,OpenList 的价值不只是"看视频":把散落在各种网盘里的文件聚合成一个统一的目录树,用 WebDAV 挂到本地、用分享链接发给别人、做一次跨盘的全文搜索 —— 这些场景它依然很难被替代。而我不用它,只是因为个人需求变了,不是因为项目不行。

现在能部署到 EdgeOne 上是个实实在在的好消息:不用服务器、不用 Docker、不占资源,免费额度就够用,需要的时候随时可用。对不想为一个小工具专门养一台机器的人来说,这大概是最省心的方案了。

END