跳到主内容

CloudDisk:基于 Cloudflare Workers 的免费个人网盘,无需 VPS、MySQL,支持 R2+D1+KV 一键部署

如果你一直想拥有一个属于自己的网盘,但又不想买 VPS、维护数据库或者折腾复杂环境,那么这个基于 Cloudflare Workers 的开源项目 CloudDisk 值得看看。整个系统运行在 Cloudflare 免费套餐上,文件存储使用 R2,数据库使用 D1,会话数据使用 KV,不需要 MySQL,也不需要服务器。支持多用户登录、文件夹管理、分享链接、在线预览、Office 文档查看、文本在线编辑、大文件断点续传、协作者权限管理等功能。无论是个人备份、开发者存放代码文件、团队共享资料,还是搭建自己的私有网盘,都可以直接部署到 Cloudflare,一键完成,几乎零维护成本,非常适合独立开发者、个人站长和轻量团队使用。

GSProber · 主机测评编辑284 阅读
如果你一直想拥有一个属于自己的网盘,但又不想买 VPS、维护数据库或者折腾复杂环境,那么这个基于 Cloudflare…

基于 Cloudflare Workers 的轻量级个人网盘,仅面向 Cloudflare 云端部署,免费、无需 VPS、无需 MySQL。

国内用户说明 部署或使用 Cloudflare 时,部分功能(如绑定支付方式、升级套餐、开通特定服务等)可能需要账户关联 Visa 或 Mastercard。若国内银行卡无法完成验证,可参考作者实测的跨境虚拟卡开通方式:虚拟信用卡实测与开卡指南

功能介绍

CloudDisk 适合个人或小团队,在 Cloudflare 免费套餐内搭建私有网盘:数据存于 R2,元数据在 D1,登录会话在 KV,全程 Serverless。

文件与目录

  • 文件夹层级浏览、新建文件夹 / 新建文件(任意后缀,如 .md.py.json
  • 上传 / 下载 / 删除 / 重命名,支持拖拽上传与上传进度显示
  • 大文件(≥ 5MB)分片上传,中断后可续传(重新选择相同文件即可)

协作与权限

  • 多用户注册登录,管理员可开关注册、管理用户与用户组
  • 为文件或文件夹添加协作者:只读可编辑
  • 协作者搜索用户名自动补全,「与我共享」独立视图
  • 用户组可配置上传、分享、协作、管理权限

分享

  • 外链分享:可选密码、有效期、下载次数上限
  • 支持文件夹分享(浏览子目录、预览、下载)
  • 可选直链下载、在线预览、访客在线编辑(视文件类型与分享设置)

预览与编辑

  • 在线预览:图片、PDF、音视频、文本、Office 文档(Word / Excel / PPT 等)
  • 预览页显示完整链接并支持一键复制
  • 文本类文件(≤ 2MB)在线编辑;图片等不可编辑类型不显示编辑入口
  • 协作者权限与分享权限一致:只读不可编辑,可编辑才显示编辑按钮

体验与管理

  • 全屏预览 / 编辑,操作结果 Toast 提示(成功、失败、API 错误)
  • 设置页:修改密码、开放注册、用户 / 用户组管理(管理员)
  • 页脚展示 Cloudflare 免费套餐相关限额说明(Workers / D1 / R2 / KV)

已部署用户升级:重新部署后需执行 D1 迁移 npm run db:migrate(或 Cloudflare Builds 部署命令中已包含)。

界面预览

登录 / 注册 文件列表
登录页 文件列表
用户组管理 创建分享
用户组管理 创建分享

技术栈

一键部署到 Cloudflare

Deploy to Cloudflare Workers

在「Configure resources」步骤确认:D1 = cloud-diskKV = cloud-diskR2 = cloud-disk-files项目名称 / Worker 名称 / APP_NAME 默认留空,请按需自行填写(留空 APP_NAME 时界面显示 CloudDisk)。

若提示「已存在具有该名称的存储库」 一键部署会在你的 GitHub 账号下新建一个 fork 仓库。本项目不再预填项目名称,请在部署页自行填写 Git 仓库名称(例如 my-cloud-disk)。若你已有源码仓库,建议跳过一键按钮,改用 Dashboard 连接已有仓库(见下文)。

若你已有该源码仓库,想直接部署(不 fork) 可跳过一键按钮,在 Cloudflare DashboardWorkers & PagesCreate → 连接 GitHub 仓库 gsvps/cloud-disk,按 wrangler.toml 配置资源后部署即可。

点击按钮后,Cloudflare 会读取 wrangler.toml自动创建 D1、KV、R2。默认命名如下:

资源 默认名称 说明
项目名称 / Worker 名称 留空(需自填) 不在仓库中预填;部署页由用户指定
应用显示名APP_NAME 留空(可选) 留空时界面默认显示CloudDisk
D1 cloud-disk 用户与文件元数据(wrangler.toml 指定)
KV cloud-disk 登录会话(与 D1 同名,类型不同不冲突)
R2 cloud-disk-files 上传文件(wrangler.toml 指定)

部署完成后访问 Workers 域名,首次打开会引导创建管理员账号。

高级设置默认值

点击一键部署后,展开「高级设置」时,以下参数会自动预填,一般无需修改:

参数 默认值 来源
项目名称 / Worker 名称 留空 由用户在部署页填写
应用显示名APP_NAME 留空 可选;未设置时应用内为CloudDisk
构建命令 npm run build package.jsonscripts.build
部署命令 npm run deploy package.jsonscripts.deploy
预览部署命令 npx wrangler versions upload Cloudflare 平台默认
Node.js 版本 22 .nvmrc / engines.node
生产分支 main 仓库默认分支
D1 数据库 cloud-disk wrangler.toml
KV 命名空间 cloud-disk package.json / 部署页默认
R2 存储桶 cloud-disk-files wrangler.toml

说明:D1、KV、R2 默认名称已在仓库中预填;部署页一般保持默认即可。

高级设置里其他字段要不要管?

字段 是否需要理会 说明
非生产分支部署命令 一般不用 默认npx wrangler versions upload,仅在你用非 main 分支做预览部署时才需要
路径(根目录) 留空即可 本项目不是 monorepo,根目录就是仓库根
API 令牌 一键部署不用填 点按钮时 Cloudflare 会引导授权;仅本地wrangler CLI 需要登录
变量名称 / 变量值 APP_NAME 可留空 无密钥类变量;APP_NAME 留空即可

手动部署步骤

1. Fork 并克隆仓库

Bash
git clone https://github.com/gsvps/cloud-disk.git
cd cloud-disk
npm install

2. 登录 Cloudflare

Bash
npx wrangler login

3. 创建 Cloudflare 资源(可选)

D1、KV、R2 可按需预先创建,或使用部署页自动创建:

Bash
npx wrangler d1 create cloud-disk
npx wrangler kv namespace create cloud-disk
npx wrangler r2 bucket create cloud-disk-files

4. 构建并部署

Bash
npm run build
npm run db:migrate
npx wrangler deploy --name cloud-disk

仓库未预填 Worker 名称时,本地部署需通过 --name 指定(名称需与 Cloudflare Dashboard 中 Worker 一致)。

该命令会依次:构建 CSS → 执行 D1 远程迁移 → 部署 Worker。

API 规范

所有接口返回统一 JSON 格式:

JSON
{ "success": true, "data": {} }
JSON
{ "success": false, "error": { "code": "BAD_REQUEST", "message": "..." } }

主要接口

方法 路径 说明
GET /api/health 健康检查
GET /api/auth/setup-status 是否需要初始化
POST /api/auth/setup 首次创建管理员
POST /api/auth/login 登录
POST /api/auth/register 注册新用户
POST /api/auth/logout 退出
GET /api/user/me 当前用户
GET /api/user/search?q= 搜索用户(协作)
GET `/api/files?scope=mine shared`
GET /api/files/:id/preview 在线预览
GET /api/files/:id/content 读取文本内容
PUT /api/files/:id/content 保存文本内容
POST /api/files/:id/collaborators 添加协作者
GET /api/shares 我的分享列表
POST /api/shares 创建分享链接
GET /api/share/:token 分享页信息(公开)
GET /api/share/:token/download 分享下载(公开)
POST /api/files/folders 创建文件夹
POST /api/files/upload 上传文件
GET /api/files/:id/download 下载文件
PATCH /api/files/:id 重命名/移动
DELETE /api/files/:id 删除

目录结构

Bash
cloud-disk/
├── src/
│   ├── index.ts          # 入口
│   ├── db/               # Drizzle schema
│   ├── routes/           # API 路由
│   ├── middleware/       # 认证中间件
│   └── lib/              # 工具函数
├── public/               # 前端静态资源
├── migrations/           # D1 迁移
└── wrangler.toml

CloudDisk 常见问题(FAQ)

CloudDisk 是什么?

CloudDisk 是一个基于 Cloudflare Workers 的开源个人网盘项目,文件存储使用 Cloudflare R2,对象元数据使用 D1 数据库,会话信息使用 KV 存储。整个系统运行在 Cloudflare Serverless 平台上,无需 VPS、无需 MySQL,支持免费部署。


CloudDisk 需要购买 VPS 或服务器吗?

不需要。

CloudDisk 完全基于 Cloudflare Workers 运行,文件保存在 R2,对象信息保存在 D1,登录状态存储在 KV,整个系统无需购买 VPS,也不需要维护服务器。


CloudDisk 可以免费使用吗?

可以。

普通个人用户可以直接使用 Cloudflare 免费套餐部署 CloudDisk,在免费额度内满足日常文件存储、备份和分享需求。

实际使用限制以 Cloudflare 官方最新免费套餐规则为准。


CloudDisk 使用哪些 Cloudflare 服务?

CloudDisk 主要依赖以下服务:

  • Cloudflare Workers:应用运行环境
  • Cloudflare R2:文件存储
  • Cloudflare D1:数据库
  • Cloudflare KV:登录会话存储

整个系统采用 Serverless 架构,无需传统数据库和服务器。


CloudDisk 支持多用户吗?

支持。

用户可以注册账号、登录系统,管理员可以开启或关闭注册功能,还可以管理用户和用户组,实现多人共同使用同一个网盘。


CloudDisk 支持团队协作吗?

支持。

CloudDisk 支持:

  • 文件协作者
  • 文件夹协作者
  • 用户组权限
  • 只读权限
  • 编辑权限
  • 与我共享视图

适合个人、小团队或开发者共享文件。


CloudDisk 支持文件分享吗?

支持。

用户可以生成分享链接,并设置:

  • 分享密码
  • 有效期
  • 下载次数限制
  • 文件夹分享
  • 公开下载
  • 在线预览

满足文件分发和资料共享需求。


CloudDisk 支持文件夹分享吗?

支持。

分享文件夹后,访问者可以浏览子目录、在线预览文件以及下载文件,体验类似传统网盘。


CloudDisk 支持大文件上传吗?

支持。

对于大于 5MB 的文件,CloudDisk 会自动采用分片上传方式。

如果上传过程中断,重新选择同一个文件即可继续上传,无需重新开始。


CloudDisk 支持断点续传吗?

支持。

大文件采用分片上传机制,网络中断后重新选择相同文件即可恢复上传。


CloudDisk 支持在线预览哪些文件?

支持多种文件在线预览,包括:

  • 图片
  • PDF
  • 视频
  • 音频
  • TXT 文本
  • Markdown 文件
  • Word 文档
  • Excel 表格
  • PowerPoint 文件

具体预览效果取决于文件类型。


CloudDisk 支持在线编辑文件吗?

支持。

2MB 以下的文本文件支持在线编辑,例如:

  • TXT
  • Markdown
  • JSON
  • Python
  • JavaScript
  • TypeScript

图片、视频等二进制文件不支持编辑。


CloudDisk 支持 Office 文档预览吗?

支持。

用户可以在线查看:

  • Word(DOC、DOCX)
  • Excel(XLS、XLSX)
  • PowerPoint(PPT、PPTX)

无需下载到本地即可浏览内容。


CloudDisk 支持哪些文件类型?

CloudDisk 支持任意后缀文件上传,例如:

  • .txt
  • .md
  • .json
  • .js
  • .ts
  • .py
  • .zip
  • .pdf
  • .mp4
  • .jpg

没有固定文件格式限制。


CloudDisk 是否支持拖拽上传?

支持。

用户可以直接拖拽文件上传,同时支持上传进度显示。


CloudDisk 是否支持权限控制?

支持。

管理员可以配置:

  • 用户组权限
  • 上传权限
  • 分享权限
  • 协作权限
  • 用户管理权限

不同用户可以拥有不同操作权限。


CloudDisk 是否支持访客访问?

支持。

创建分享链接后,访客无需登录即可访问分享内容。

可以根据需要设置密码、有效时间以及下载次数限制。


CloudDisk 支持在线编辑共享文件吗?

支持。

当分享设置允许编辑时,访客或协作者可以在线编辑文件。

如果权限设置为只读,则不会显示编辑按钮。


CloudDisk 如何部署到 Cloudflare?

有两种方式:

一键部署

通过 Deploy to Cloudflare 按钮自动创建:

  • Workers
  • D1 数据库
  • KV 命名空间
  • R2 存储桶

部署完成后即可使用。


CloudDisk 是否需要 MySQL 数据库?

不需要。

CloudDisk 使用 Cloudflare D1 数据库保存文件和用户信息,不依赖 MySQL、MariaDB 或 PostgreSQL。


CloudDisk 使用什么技术栈?

CloudDisk 基于:

  • Cloudflare Workers
  • Hono
  • TypeScript
  • Drizzle ORM
  • Tailwind CSS
  • Cloudflare R2
  • Cloudflare D1
  • Cloudflare KV

属于纯 Serverless 架构。


CloudDisk 适合哪些人使用?

适合:

  • 独立开发者
  • 个人站长
  • 小团队
  • 自媒体创作者
  • 技术爱好者
  • NAS 用户
  • 个人文件备份用户
  • Cloudflare 开发者

CloudDisk 和 Nextcloud 有什么区别?

CloudDisk 更轻量。

对比项目 CloudDisk Nextcloud
VPS 不需要 需要
MySQL 不需要 需要
Docker 不需要 推荐
部署难度 简单 较复杂
运行环境 Cloudflare Workers Linux 服务器
维护成本 极低 较高
适合个人使用
免费部署

CloudDisk 是否开源?

是。

CloudDisk 是一个开源项目,开发者可以自行 Fork、修改和部署,也可以基于项目进行二次开发,构建属于自己的私人网盘系统。


CloudDisk 适合作为私人云盘吗?

非常适合。

对于个人用户、开发者和小团队来说,CloudDisk 可以作为 Google Drive、Dropbox、OneDrive 等云盘的轻量替代方案,实现低成本、可控、可自托管的私有网盘。

要闻如果你想搭建一个属于自己的远程桌面平台,又不想购买中继服务器,GsDesk 提供了一套基于 Cloudflare Wo…

GsDesk Cloudflare 部署教程:免费使用 Cloudflare Workers 自建远程桌面,支持 WebRTC P2P 与浏览器远程控制

如果你想搭建一个属于自己的远程桌面平台,又不想购买中继服务器,GsDesk 提供了一套基于 Cloudflare Workers 的免费部署方案。整个项目可以直接部署到 Cloudflare,利用 Workers、D1、KV、R2 和 Durable Objects 构建完整的远程控制后台,服务端只负责 API、身份认证和 WebSocket 信令,真正的桌面画面通过 WebRTC P2P 直连 传输,不占用 Worker 流量,也不用担心视频中继带来的高额带宽成本。

94 阅读

教程GsDesk 是一款基于 Cloudflare Workers 与 VPS 自托管 的开源远程桌面项目,支持 WebR…

Cloudflare Workers 免费搭建开源远程桌面完整教程:无需 VPS,支持 WebRTC P2P、D1、KV、R2、浏览器远程控制、Windows 客户端和文件传输

GsDesk 是一款基于 Cloudflare Workers 与 VPS 自托管 的开源远程桌面项目,支持 WebRTC P2P 直连,服务端仅负责 API、身份认证和 WebSocket 信令,不中转桌面视频流,大幅降低服务器带宽成本。项目支持 Cloudflare 免费套餐 部署,也可以使用 Docker 在 VPS 上自托管,内置 Windows 客户端、浏览器控制端、手机远程控制,支持 8 位设备 ID、OTP 一次性密码、永久密码、Ed25519 设备认证、JWT 身份验证、文件传输、剪贴板同步、自动重连 等完整功能。

306 阅读

教程不知道大家有没有发现,现在几乎所有业务都离不开邮箱。网站注册需要邮箱;接收验证码需要邮箱;服务器报警需要邮箱;客户联系…

2026最新Cloud Mail测评(含搭建教程):零服务器成本自建域名邮箱,Cloudflare 开源企业邮箱解决方案推荐

不知道大家有没有发现,现在几乎所有业务都离不开邮箱。网站注册需要邮箱;接收验证码需要邮箱;服务器报警需要邮箱;客户联系需要邮箱;团队协作需要邮箱;甚至很多人都希望拥有一个属于自己的企业邮箱:但现实情况是:免费邮箱广告越来越多;企业邮箱一年动辄几百甚至上千元;邮件数据完全掌握在第三方平台;多项目、多域名管理越来越混乱;自建邮件服务器配置复杂,新手根本无从下手。

338 阅读

常见问题

CloudDisk 部署需要自己买VPS或搭建MySQL数据库吗?

不需要。CloudDisk 完全运行在 Cloudflare Workers 上,文件存储用 R2,元数据用 D1 数据库,登录会话用 KV,整个系统是 Serverless 架构,不用买 VPS 也不用维护 MySQL。

CloudDisk 上传大文件会怎么处理,中断了怎么办?

大于等于 5MB 的文件会自动采用分片上传。如果上传过程中断,重新选择同一个文件即可继续上传,不需要从头开始,即支持断点续传。

CloudDisk 支持在线预览和编辑哪些文件?

支持在线预览图片、PDF、音视频、文本以及 Word/Excel/PPT 等 Office 文档;2MB 以下的文本类文件(如 TXT、Markdown、JSON、Python、JS)支持在线编辑,图片、视频等二进制文件不支持编辑。

CloudDisk 和 Nextcloud 相比有什么区别?

CloudDisk 更轻量:不需要 VPS、MySQL、Docker,运行在 Cloudflare Workers 上,部署简单、维护成本极低,且支持免费部署;Nextcloud 则需要 Linux 服务器和数据库,部署难度和维护成本都更高。

评价与回复

无需登录;审核通过后公开显示。