Cloudflare R2 + Workers:在线网盘 使用 Cloudflare Pages 快速部署教程

利用 Cloudflare R2 + Workers 搭建在线网盘

此前,我们发布了一篇博文,介绍如何利用 Cloudflare R2 与 PicList 一款高效的云存储和图片托管平台 来管理图片和文件。本项目 Cloudflare-R2-OSS 的思路与之类似,但提供了图形化界面,实现了类似网盘的功能,可用于存储软件、图片音频视频等文件。该方案无需借助其他额外工具,不过在上传大文件的体验上略逊于 PicList,例如超过300M的就无法上传。我们可以用到 PicList。

PS:发布这篇文章后 清羽飞扬大佬 留言刚好有二开基于 Cloudflare-R2-OSS 一个UI界面更好看且优雅的!果断部署更新!下方部署教程两个项目都通用。

演示网站 账号密码:aizrf

  • 演示网站为清羽飞扬大佬的 FlareDrive-R2
我的项目
在线网盘
introduction
introduction
周润发
收录开源,好用的互联网项目

界面预览

  • 图1为 Cloudflare-R2-OSS ,图2为 清羽飞扬大佬 的 FlareDrive-R2

20250321164824701.webp
20250321170925421.webp

下载测试

  • 既然是网盘我们当然要测试下载速度,最快跑到 60 MB/s 左右,均值在 20-30 MB/s 左右,很快了,当然下载速度是根据你的网络带宽而定。

20250321223258742.webp


搭建教程

Fork 仓库

在 Github Fork 项目,自己选择部署哪一个。

20250321032450935.webp

创建 R2 储存桶

前往 Cloudflare R2 新建一个 R2 储存桶。
20250321032701989.webp
设置你的存储桶名,名称随意设置,然后点击创建。
20250321032835888.webp
在储存桶设置中R2.dev 子域允许公开访问,复制公共储存桶 URL。
20250321033713313.webp
公共 R2.dev 存储桶 URL 保存下来,如下的格式。

1
https://pub-888888888888888.r2.dev

新建 Cloudflare Pages 站点

前往 Cloudflare Pages,新建站点,选择连接到 Git,并选择刚刚 Fork 的仓库。点击开始设置。
20250321034308383.webp
20250321034333026.webp
20250321034432431.webp

添加环境变量

项目名称可自行修改,其它项目保持默认设置。点击环境变量并添加如下变量,自用只需要设置个管理员账号就行,演示账号无需设置。

  • 管理员的值代表允许写入的目录,多个目录请用英文逗号分隔。
  • 环境变量中请勿在目录前后添加逗号,否则会获得所有目录的写入权限。

20250321035355185.webp

变量名称 说明
PUBURL 复制的公共储存桶 URL 用于存储桶访问
GUEST public/ 游客允许写入的目录
aizrf:aizrf * 管理员权限(账号:密码形式,允许写入目录,多目录用英文逗号分隔)
zrf:zrf zrf/,zrfPublic/ 演示账号设置

绑定 R2 储存桶

前往 Pages > cloudflare-r2-oss > 设置 > 函数 > R2 储存桶绑定,绑定对应的 R2 储存桶,变量名称为 BUCKET
20250321035953916.webp
20250321040043230.webp

重新部署

在部署页面点击重新部署按钮,完成设置后即可正式使用。
20250321040225799.webp

设置自定义域名

因为我这是小号部署的项目,域名没有在这个账号托管,你有域名并且在 cloudflare 托管了可以一键设置。
20250321041121946.webp
20250321041257642.webp

超过 300 MB 大文件上传

  • 超过 300 MB 的文件仅支持通过 S3 兼容性 APIWorkers 进行上传。

因此,建议采用 PicList 方案进行设置,详情请参考本篇博文 PicList - 一款高效的云存储和图片托管平台管理工具

如果你采用了分目录上传,例如演示网站中使用的 imgappvideo 目录不在根目录下,
请在 PicList 的设置中修改 上传路径 参数,例如:

1
video/{fileName}.{extName}

对于自定义域名,请将你的域名后面加上 /raw,例如:

1
https://pan.001315.xyz/raw

20250321200647126.webp

并且关闭格式转换
前往至 上传 👉 图片处理 👉 格式转换 ,关闭转换webp格式。
20250321204147131.webp

博主留言

  1. 在使用 PicList转换格式 功能启用状态,因为我一般默认设置为转换 webp格式 ,但如上传zip、MP4 等格式,这些文件会自动转换为预设的webp格式。所以我每次想要上传视频等,非图片的文件时,我得手动去关闭格式转换,有点麻烦。所以我使用这个项目除非大文件,视频等一般不用 PicList 上传。

  2. 如通过 PicList 上传到 R2 在线网盘中是看不到略缩图的。下图两个是一个视频文件只是上传方式不一样。
    20250321213146861.webp


相关链接