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

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
界面预览
- 图1为 Cloudflare-R2-OSS ,图2为 清羽飞扬大佬 的 FlareDrive-R2 。
下载测试
- 既然是网盘我们当然要测试下载速度,最快跑到 60 MB/s 左右,均值在 20-30 MB/s 左右,很快了,当然下载速度是根据你的网络带宽而定。
搭建教程
Fork 仓库
在 Github Fork 项目,自己选择部署哪一个。
- 清羽飞扬大佬的 FlareDrive-R2 :https://github.com/willow-god/FlareDrive-R2
- Cloudflare-R2-OSS :https://github.com/ljxi/Cloudflare-R2-oss
创建 R2 储存桶
前往 Cloudflare R2 新建一个 R2 储存桶。
设置你的存储桶名,名称随意设置,然后点击创建。
在储存桶设置中R2.dev 子域
允许公开访问,复制公共储存桶 URL。
公共 R2.dev 存储桶 URL
保存下来,如下的格式。
1
https://pub-888888888888888.r2.dev
新建 Cloudflare Pages 站点
前往 Cloudflare Pages,新建站点,选择连接到 Git,并选择刚刚 Fork 的仓库。点击开始设置。
添加环境变量
项目名称可自行修改,其它项目保持默认设置。点击环境变量并添加如下变量,自用只需要设置个管理员账号就行,演示账号无需设置。
- 管理员的值代表允许写入的目录,多个目录请用英文逗号分隔。
- 环境变量中请勿在目录前后添加逗号,否则会获得所有目录的写入权限。
变量名称 | 值 | 说明 |
---|---|---|
PUBURL | 复制的公共储存桶 URL | 用于存储桶访问 |
GUEST | public/ | 游客允许写入的目录 |
aizrf:aizrf | * | 管理员权限(账号:密码形式,允许写入目录,多目录用英文逗号分隔) |
zrf:zrf | zrf/,zrfPublic/ | 演示账号设置 |
绑定 R2 储存桶
前往 Pages > cloudflare-r2-oss > 设置 > 函数 > R2 储存桶绑定,绑定对应的 R2 储存桶,变量名称为 BUCKET
。
重新部署
在部署页面点击重新部署按钮,完成设置后即可正式使用。
设置自定义域名
因为我这是小号部署的项目,域名没有在这个账号托管,你有域名并且在 cloudflare 托管了可以一键设置。
超过 300 MB 大文件上传
- 超过 300 MB 的文件仅支持通过 S3 兼容性 API 或 Workers 进行上传。
因此,建议采用 PicList 方案进行设置,详情请参考本篇博文 PicList - 一款高效的云存储和图片托管平台管理工具。
如果你采用了分目录上传,例如演示网站中使用的 img、app、video 目录不在根目录下,
请在 PicList 的设置中修改 上传路径 参数,例如:1
video/{fileName}.{extName}
对于自定义域名,请将你的域名后面加上 /raw
,例如:1
https://pan.001315.xyz/raw
并且关闭格式转换
前往至 上传 👉 图片处理 👉 格式转换 ,关闭转换webp格式。
博主留言
在使用 PicList 中 转换格式 功能启用状态,因为我一般默认设置为转换 webp格式 ,但如上传zip、MP4 等格式,这些文件会自动转换为预设的webp格式。所以我每次想要上传视频等,非图片的文件时,我得手动去关闭格式转换,有点麻烦。所以我使用这个项目除非大文件,视频等一般不用 PicList 上传。
如通过 PicList 上传到 R2 在线网盘中是看不到略缩图的。下图两个是一个视频文件只是上传方式不一样。
相关链接
- 演示网站 账号密码:
aizrf
:https://pan.001315.xyz/- 清羽飞扬大佬的 FlareDrive-R2 :https://github.com/willow-god/FlareDrive-R2
- Cloudflare-R2-OSS :https://github.com/ljxi/Cloudflare-R2-oss
- PicList - 一款高效的云存储和图片托管平台管理工具:https://blog.aizrf.com/p/PicList/