尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

零成本搭建网盘聚合列表:OpenListNext与Cloudflare Workers实战指南

零成本搭建网盘聚合列表:OpenListNext与Cloudflare Workers实战指南 大家好我是专注于分享实用技术方案的博主。最近在折腾个人网盘项目时发现很多朋友都想搭建一个能聚合多个网盘资源的在线列表但苦于没有服务器或不想承担持续的运维成本。本文将手把手带你实现一个零成本的解决方案利用OpenListNext和Cloudflare Workers免费部署一个功能强大的网盘挂载列表服务。学完本文你将能独立搭建一个属于自己的、支持挂载夸克网盘等多种存储的在线文件管理器。1. 背景与核心概念为什么选择这个方案在开始动手之前我们先理清几个关键概念理解这个组合方案的优势所在。1.1 什么是 OpenListNextOpenListNext 是一个开源的文件列表程序你可以把它理解为一个“文件管理器的前端界面”。它的核心功能是统一展示将来自不同地方的存储如本地磁盘、阿里云盘、夸克网盘、OneDrive、WebDAV 等的文件和目录以一个美观的网页列表形式展示出来。基础文件操作支持预览图片、播放音视频、在线阅读文档、下载文件等。高度可定制通过配置文件可以轻松添加、删除或管理多个存储挂载点。简单说它本身不存储文件而是文件的“展示窗口”和“访问网关”。1.2 什么是 Cloudflare WorkersCloudflare Workers 是 Cloudflare 提供的无服务器Serverless计算平台。它的特点是免费额度充足每日提供 10 万次免费请求对于个人或小规模使用的网盘列表来说完全足够。全球边缘网络你的代码会运行在 Cloudflare 全球的数据中心访问速度很快。无需管理服务器你只需要编写和部署代码无需关心服务器运维、系统更新等问题。按需付费超出免费额度后费用极低真正实现了“零成本”起步。1.3 方案优势与核心原理将 OpenListNext 部署到 Cloudflare Workers 上结合了两者的优点完全免费利用 Workers 的免费额度实现 7x24 小时在线服务无需为服务器付费。部署简单无需购买 VPS、配置 Nginx、申请域名备案使用 Workers 分配的*.workers.dev子域名即可。性能优异依托 Cloudflare 的全球 CDN你的文件列表页面能在全球被快速访问。扩展性强OpenListNext 支持丰富的存储驱动你可以随时在配置中添加新的网盘。核心原理我们将 OpenListNext 的前端静态资源HTML, CSS, JS和其核心的 API 服务全部打包并运行在 Cloudflare Workers 这个无服务器环境中。用户访问你的 Workers 地址时Workers 会执行代码动态生成文件列表页面并与后端存储进行通信。2. 环境准备与版本说明在开始部署前你需要准备好以下环境和工具。本文的操作以主流环境为例重点在于演示完整的配置和部署思路。2.1 必备账号与工具Cloudflare 账号这是使用 Workers 的前提。如果你没有请前往 Cloudflare 官网免费注册。Node.js 环境用于在本地构建和打包 OpenListNext 项目。建议安装Node.js 16或18的 LTS 版本。你可以通过node -v命令检查版本。包管理工具 npm 或 yarn通常随 Node.js 一同安装用于安装项目依赖。代码编辑器如 VS Code用于编辑配置文件。命令行终端如 Windows 的 PowerShell/CMDmacOS/Linux 的 Terminal。2.2 项目版本说明本文基于以下版本进行演示不同版本间配置可能略有差异但核心流程一致OpenListNext: 我们将使用其官方仓库的最新稳定版本进行构建。Wrangler: Cloudflare 官方命令行工具用于管理 Workers。本文使用版本 3.x。Node.js: v18.17.0重要提示开源项目迭代较快具体的命令和配置请以项目官方文档为准。本文提供的是一种经过验证的、可复现的部署方法。3. 核心配置与原理拆解在部署过程中我们需要重点关注两个配置文件OpenListNext 的config.json和 Cloudflare Workers 的wrangler.toml。3.1 OpenListNext 配置 (config.json) 解析这个文件是 OpenListNext 的灵魂它定义了所有存储挂载、站点信息、安全策略等。{ // 站点基础信息 site: { title: 我的免费网盘列表, logo: , footer: Powered by OpenListNext Cloudflare Workers }, // 存储挂载列表可以配置多个 storages: [ { name: 夸克网盘示例, // 在页面上显示的名称 driver: Quark, // 驱动类型这里是夸克网盘 addition: { root: /, // 挂载的根目录 refreshToken: 你的夸克网盘RefreshToken // 核心认证信息 } }, { name: 本地测试目录, driver: Local, addition: { root: ./public // 相对于 Workers 运行环境的路径 } } // 可以继续添加阿里云盘(Alist)、OneDrive等驱动 ], // 用户认证可选建议设置以保护隐私 users: [ { username: admin, password: 请设置一个强密码 } ], // 服务器配置在 Workers 环境中部分设置可能不适用但需保留结构 server: { port: 3000, search: false } }关键参数解释driver: 指定存储类型。例如Quark夸克、Aliyundrive阿里云盘、Local本地。addition: 对应驱动所需的认证信息。每个驱动的参数不同需要查阅 OpenListNext 官方文档。refreshToken: 对于夸克、阿里云盘等需要 OAuth 授权的网盘需要获取其 Refresh Token。请注意Token 是敏感信息切勿泄露。3.2 Cloudflare Workers 配置 (wrangler.toml) 解析这个文件告诉 Wrangler 工具如何构建和部署你的 Worker。name my-openlist-next # 你的 Worker 名称也是子域名的一部分 main src/index.js # 入口文件 compatibility_date 2024-03-04 # 兼容性日期保持较新日期 # 构建命令用于打包 OpenListNext [build] command npm run build upload.format service-worker # 部署的环境变量可用于区分开发和生产环境 [env.production] vars { ENVIRONMENT production }为什么是 Service Worker 格式OpenListNext 经过适配可以打包成一个完整的 Service Worker 脚本在 Workers 环境中处理所有路由和请求这是它能在此平台运行的关键。4. 完整实战部署流程接下来我们从零开始完成整个部署过程。4.1 第一步获取 OpenListNext 源码并初始化打开你的终端执行以下命令# 1. 克隆 OpenListNext 仓库到本地 git clone https://github.com/openlist-next/openlist-next.git cd openlist-next # 2. 安装项目依赖使用 npm 或 yarn npm install # 或 yarn install4.2 第二步配置 OpenListNext在项目根目录复制示例配置文件cp config.sample.json config.json用你的代码编辑器打开config.json文件。根据上文3.1节的说明修改配置文件。首次测试时建议先使用Local驱动挂载一个本地目录确保基础功能正常。创建一个public文件夹里面放几个测试文件如test.txt,demo.jpg。在config.json的storages数组中配置一个Local驱动指向./public。暂时不要配置夸克网盘等基础服务跑通后再添加。4.3 第三步本地测试运行在部署到云端前先在本地确保项目能正常运行。# 在项目根目录执行 npm run dev # 或 yarn dev如果一切正常终端会输出服务运行的地址通常是http://localhost:3000。用浏览器打开这个地址你应该能看到 OpenListNext 的界面并可以浏览public文件夹里的测试文件。本地测试成功是后续部署到 Cloudflare Workers 的重要前提。4.4 第四步安装并配置 Wrangler CLI我们需要 Cloudflare 的命令行工具来部署。# 全局安装 Wrangler npm install -g wrangler # 或 yarn global add wrangler安装完成后登录你的 Cloudflare 账号wrangler login执行命令后会自动打开浏览器完成授权即可。4.5 第五步构建项目以适应 WorkersOpenListNext 需要经过特定构建才能运行在 Service Worker 模式下。查看package.json通常已经配置好了build脚本。# 在项目根目录执行构建命令 npm run build # 或 yarn build构建完成后会在项目根目录生成dist文件夹里面包含了优化后的静态资源和 Worker 入口文件。4.6 第六步部署到 Cloudflare Workers这是最关键的一步。确保你在项目根目录并且wrangler.toml文件已正确配置如果项目没有可以手动创建内容参考3.2节。# 执行部署命令 wrangler deploy部署过程中Wrangler 会进行打包、上传等操作。成功后终端会输出你的 Worker 访问地址格式为https://my-openlist-next.你的子域名.workers.dev。恭喜现在你可以通过这个网址访问你部署的 OpenListNext 服务了。它应该和本地测试时的功能完全一致。4.7 第七步进阶配置 - 添加夸克网盘挂载基础服务运行正常后我们来添加实用的网盘挂载。以夸克网盘为例获取夸克网盘的 Refresh Token这是一个需要一点技巧的步骤。通常需要通过浏览器的开发者工具在登录夸克网盘后从网络请求中提取refresh_token。由于具体步骤涉及第三方网站登录和抓包且方法可能随时间变化请自行搜索“夸克网盘 refresh token 获取”等关键词寻找最新的、安全的教程。务必从可信来源获取信息。修改config.json在storages数组中添加一个新的配置项如下所示。将你的夸克网盘RefreshToken替换为上一步获取到的真实 Token。{ name: 我的夸克网盘, driver: Quark, addition: { root: /, refreshToken: 你的夸克网盘RefreshToken } }重新部署修改配置后需要重新构建并部署 Worker。npm run build wrangler deploy部署完成后刷新你的 Workers 网址页面左侧的存储列表里应该就会出现“我的夸克网盘”点击即可浏览其中的文件。安全提醒config.json中的 Token 等敏感信息会随着代码一起部署。虽然 Workers 脚本内容默认不公开但为安全起见对于非常重要的网盘账号可以考虑使用 Workers 的环境变量或KV 命名空间来存储这些密钥然后在代码中读取。这需要你修改 OpenListNext 的源码以适应这种读取方式属于更进阶的用法。5. 常见问题与排查思路部署过程中难免会遇到问题这里汇总了一些常见情况及其解决方法。问题现象可能原因排查思路与解决方案wrangler login失败或卡住网络问题或浏览器拦截1. 检查网络连接尝试使用稳定的网络环境。2. 确保浏览器允许弹出窗口。3. 可尝试wrangler login --scopes-list查看权限范围。执行wrangler deploy时报错提示名称冲突Worker 名称my-openlist-next已被占用修改wrangler.toml文件中的name字段换一个独一无二的名称。部署成功但访问 Workers 网址显示空白页或错误1. 构建过程出错。2. OpenListNext 配置有误。3. Service Worker 路由处理失败。1. 检查终端构建 (npm run build) 时是否有报错。2. 运行wrangler tail查看实时日志根据错误信息定位问题。3. 回退到最简单的Local驱动配置确保基础功能正常。能打开页面但看不到挂载的存储或列表为空1. 存储驱动配置错误。2. Token 失效或权限不足。3. 网盘 API 限制或网络问题。1. 仔细核对config.json确保driver名称和addition参数正确。2. 对于夸克/阿里云盘Refresh Token 可能过期需要重新获取。3. 查看浏览器开发者工具的“网络(Network)”选项卡看 API 请求是否返回错误如 4xx/5xx。页面加载缓慢或部分资源如图片加载失败1. Workers 免费套餐的每日请求数或CPU时间可能受限极少见。2. 存储源如夸克的 CDN 问题。3. 浏览器缓存。1. 访问 Cloudflare Dashboard查看 Workers 的用量统计。2. 尝试刷新页面或清除浏览器缓存。3. 如果是特定存储的问题可能是该网盘服务的临时故障。如何绑定自定义域名默认使用*.workers.dev1. 在 Cloudflare 控制台进入你的 Worker。2. 在 “Triggers” 选项卡中可以添加自定义域名需要域名已在 Cloudflare 托管。通用排查命令wrangler tail在终端实时查看 Worker 的请求日志是调试的利器。wrangler deployments list查看当前的部署列表和状态。wrangler secret put KEY交互式地设置一个环境变量Secret用于安全存储密钥。6. 最佳实践与工程建议为了让你的免费网盘列表更稳定、安全、好用请遵循以下建议6.1 配置管理安全分离敏感信息不要将refreshToken、password等直接硬编码在config.json中并提交到公开的 Git 仓库。对于个人项目至少确保.gitignore文件忽略了config.json。更优解是使用 Wrangler 的 Secret 功能。# 将敏感信息设置为 Secret wrangler secret put QUARK_REFRESH_TOKEN # 然后在你的 Worker 代码中通过 env.QUARK_REFRESH_TOKEN 读取使用环境变量开发、测试、生产环境可以使用不同的配置。在wrangler.toml中定义[vars]或[env.xxx.vars]来管理。6.2 性能与缓存优化启用 Workers 缓存对于 OpenListNext 的静态资源JS、CSS、图标可以在 Worker 代码中添加简单的缓存逻辑减少回源请求提升加载速度。合理设置列表分页在config.json中可以配置server下的pageSize避免单次请求加载过多文件导致超时或卡顿。6.3 权限与访问控制务必启用用户认证如果你挂载了包含个人或敏感文件的网盘强烈建议在config.json的users部分设置用户名和密码。否则你的文件列表将对互联网公开。使用强密码避免使用admin/123456这类简单密码。定期更换 Token定期检查并更新网盘的 Refresh Token降低安全风险。6.4 维护与监控关注免费额度虽然每日 10 万次请求很多但如果你的站点流量巨大或被恶意爬取可能会超标。定期在 Cloudflare Dashboard 查看用量。备份配置文件将最终调试成功的config.json和wrangler.toml备份到本地安全的地方。关注项目更新定期关注 OpenListNext 和 Wrangler 的官方仓库获取功能更新和安全修复。更新前请在本地测试环境验证。6.5 扩展性思考挂载更多存储OpenListNext 支持数十种存储驱动。你可以按需添加阿里云盘、OneDrive、Google Drive、SFTP 等打造你的“聚合网盘”。自定义前端样式如果你懂前端可以修改 OpenListNext 的 UI 组件打造独一无二的界面。结合 Cloudflare R2如果你有文件需要托管可以考虑使用 Cloudflare R2兼容 S3 API 的廉价对象存储作为存储驱动实现完全在 Cloudflare 生态内的“存储展示”闭环。通过本文的步骤你已经成功搭建了一个基于 Cloudflare Workers 的免费、高性能网盘列表服务。这个方案的核心价值在于它用几乎为零的成本解决了个人开发者和小团队对于轻量级文件展示和分享的需求。从本地测试到云端部署从基础挂载到安全优化整个过程涵盖了无服务器应用部署的典型流程。
返回列表