目 录CONTENT

文章目录

OpenList-Worker部署使用--Cloudflare版

过客
2026-11-02 / 0 评论 / 2 点赞 / 3 阅读 / 0 字

OpenList-Worker 是 OpenList 官方推出的 TypeScript + Serverless 版本,把 Go 后端改写为跑在 Cloudflare Workers / EdgeOne / 阿里云 ESA 上的服务,前端保持 SolidJS + Hope UI 不变。核心卖点:不用买服务器、不用跑 Docker、自带免费额度、内置 78 个存储驱动、数据存在 Cloudflare D1/KV/Blob 里。

为什么要用 Worker 版

之前用 OpenList Go 版,得有台机器、装 Docker、配反代、管 SSL、管备份。Worker 版这些全不用管:Cloudflare 免费额度每天 10 万次请求、100 GB·天存储,对个人够用;EdgeOne 国内节点更快;阿里云 ESA 适合备案域名。缺点是冷启动有几百毫秒延迟,大文件上传受 Workers 请求体限制(25 MB / 100 MB 分片),但如果是下载挂载的网盘使用302转发的连接则不受影响,适合中小文件、文档、图片、视频预览场景。

一键部署

Github官网: https://github.com/OpenListTeam/OpenList-Worker

三个平台官方都给了一键部署按钮,点进去授权 GitHub、填 JWT_SECRET 就行。

Cloudflare Workers

https://deploy.workers.cloudflare.com/?url=https://github.com/OpenListTeam/OpenList-Worker

EdgeOne Pages(国际/国内)

https://edgeone.ai/pages/new?project-name=openlist-tsworker&repository-url=https://github.com/OpenListTeam/OpenList-Worker&install-command=pnpm%20install%20--no-frozen-lockfile&build-command=pnpm%20run%20build&output-directory=dist&env=JWT_SECRET

阿里云 ESA
同理,在 ESA 控制台新建函数、关联仓库、填环境变量。

部署时必须填 JWT_SECRET(≥16 字符,openssl rand -hex 32 生成),用于 JWT 签名和定时任务鉴权。建议在平台控制台以 Secret 方式存,别写进仓库。DB_DRIVER=auto 默认会自动选平台自带存储,不用动。

部署完首次访问会进安装向导,网页上设置管理员账号密码即可。想跳过向导,加个 ADMIN_PASS 环境变量。

Cloudflare 完整部署流程

  • 登录自己的Github账号,Fork 官方Github项目。
  • 登录Cloudflare,进入存储与数据创建一个D1 SQLite(openlist)、R2对象存储(openlist)
  • 创建应用 -> 选择 Continue with GitHub -> 选择 OpenList-Worker
  • 进入设置 -> 添加 JWT_SECRET 变量 -> 绑定D1数据库 和 R2存储桶

  • 等待部署完成,就可以进入域名网站进入初始化了

  • 设置好管理员账户

  • 完成初始化

  • 再次进入页面就是正常的OpenList登录页面了,登录后就是主页

  • 添加Cloudflare R2存储 -> 这里只配置挂载路径和Bucket binding,Bucket binding就是前面绑定的R2的openlist

添加存储(跟 Go 版一模一样)

进后台 → 存储 → 添加,78 个驱动全在:

  • 国内网盘:阿里云盘、夸克、百度、115、123、天翼、移动云、迅雷、微云、蓝奏、PikPak、豆包...
  • 国际网盘:Google Drive、OneDrive、Dropbox、MEGA、MediaFire、Proton Drive、Yandex...
  • 对象存储:S3 兼容、Cloudflare R2(Workers Binding 直连、不走公网)、又拍云、Azure Blob、WebDAV、FTP、SFTP、SMB、IPFS
  • 代码托管:GitHub、GitHub Releases、CNB Releases
  • 网盘程序:OpenList 分享、AList V3、Cloudreve、可道云、Seafile...
  • 功能型:Local、Alias、UrlTree、AutoIndex、Strm、​Crypt​、​Chunk​、Virtual

配置方式跟 Go 版一样,驱动选项、挂载路径、认证信息填进去保存。Worker 版有个并发去重机制:同一时刻相同目录请求只向上游发一次,其余复用结果,省流量省限流。

进阶配置(环境变量)

变量 默认 说明
JWT_SECRET 必填 ≥16 字符随机串,Secret 方式存
ADMIN_PASS — 跳过安装向导,直接初始化 admin
DB_FORMAT map map/key/sql 三种存储格式
DB_DRIVER auto auto/blob/cfkv/kv/d1/do/mysql
DB_CIPHER none 敏感字段落盘加密,如 aes-256-gcm
CACHE_ENABLED true 目录树/下载链接缓存
MAX_UPLOAD 26214400 整体上传上限(字节),25 MB
MAX_UPPART 16777216 分片上传上限,16 MB
ASSET_URLS — 前端静态资源 CDN,支持 $version 占位符

完整变量表见官方文档:https://doc.oplist.org/ecosystem/official_worker/guide_env

Cloudflare 部署实测体验

测试环境:浙江电信家宽,直接ping网盘域名延迟在200ms左右。但有些区域的宽带对cf访问不友好,会出现丢包或超时情况。

  • ​冷启动​:首次访问 ~3s左右,二次访问 <1s
  • ​目录列表​:1s左右 返回,缓存命中更快
  • ​视频预览​:直链跳转上游,Worker 不转流,带宽不算在免费额度里
  • ​大文件上传​​:受 Workers 限制,单片 16 MB、总 25 MB,大文件得分片或走 R2 Binding
  • ​WebDAV/S3 对外​:开启后可挂载到 PotPlayer、Infuse、Rclone、Alist 等客户端
  • ​MCP 端点​:/mcp 路径,AI 助手可直接搜索读取文件

坑点提醒

  1. Cloudflare 提示"无法获取存储库内容" → 先 Fork 仓库,再连 Fork 后的仓库部署
  2. ​JWT_SECRET 必须用 Secret 存​,普通环境变量重新部署会被仓库配置覆盖
  3. ​自定义域名要在平台控制台加​​,别只改 DNS
  4. 大文件上传失败 → 调 MAX_UPLOAD/MAX_UPPART、或用 R2 Binding 直传

说说我的用法

主力还是自建 Go 版(大文件、离线下载、常驻服务),Worker 版拿来做:

  • WebDAV图床
  • 临时分享文件给别人,不用开服务器端口
  • 手机端快速预览网盘文档/图片,不用装客户端
  • 给 AI 助手挂 MCP,让它直接搜我网盘里的资料
  • 测试新驱动、新配置,坏了删了重部署不心疼

Cloudflare 版的对国内不算太友好,还有里面很多挂载的国内的网盘,对于cf海外挂载来说会有一定的延迟,也不排除会被封号的可能,如果主要面对海外用户和挂载海外的网盘还是挺不错的。如果要对面国内,有备案域名的情况下,可以考虑阿里云的ESA,现在最新版本 29b7a8e直接部署会有一个小bug初始化不了,fork版本让AI改了可以部署正常运行,还是等官方修复后再来细聊阿里ESA部署吧。

2

评论区