使用 Cloudflare R2 和 Workers 搭建免费的文件共享服务

本教程将指导您如何利用 Cloudflare Workers 和 R2 存储,快速搭建一个属于您自己的、免费且高速的文件共享平台。

项目特点

  • 免费: 完全基于 Cloudflare 的免费套餐,R2 存储提供每月免费的 10GB 存储和百万次级别的读写操作。
  • 高速: 借助 Cloudflare 全球 CDN 网络,文件上传下载速度快。
  • 易于部署: 通过 Wrangler CLI 可以实现一键部署。
  • 功能: 支持文件上传、下载、列表查看和删除。

准备工作

在开始之前,请确保您已准备好:

  1. 一个域名: 并将其 Nameserver 指向 Cloudflare。
  2. Cloudflare 账户: 免费注册即可。
  3. Node.js 和 npm: 在您的电脑上安装 Node.js
  4. Wrangler CLI: Cloudflare 的官方命令行工具。

部署步骤

我们将使用一个开源项目 ZiuChen/Cloudflare-R2-Share-Worker 作为示例。

1. 安装 Wrangler CLI

如果您尚未安装 wrangler,请在终端中运行:

1
npm install -g wrangler

2. 克隆项目并登录

1
2
3
git clone https://github.com/ZiuChen/Cloudflare-R2-Share-Worker.git
cd Cloudflare-R2-Share-Worker
wrangler login

3. 创建 R2 存储桶

运行以下命令来创建一个 R2 存储桶 (Bucket),您可以将 my-files 替换为您喜欢的名称。

1
wrangler r2 bucket create my-files

4. 配置 wrangler.toml

打开项目根目录下的 wrangler.toml 文件,找到 [[r2_buckets]] 部分,将其修改为您的存储桶配置:

1
2
3
4
[[r2_buckets]]
binding = "R2"
# 将 bucket_name 修改为您刚刚创建的存储桶名称
bucket_name = "my-files"

5. 部署到 Cloudflare

现在,将您的 Worker 部署到 Cloudflare 网络:

1
wrangler deploy

部署成功后,您会得到一个 Worker 的访问地址,例如 https://cloudflare-r2-share-worker.<您的子域>.workers.dev

6. (可选) 绑定自定义域名

  1. 登录到 Cloudflare 仪表板。
  2. 选择您的网站,然后进入 Workers 和 Pages > 概述
  3. 找到您刚刚部署的 Worker,点击它进入详情页。
  4. 点击 触发器 (Triggers) 选项卡,在 自定义域 (Custom Domains) 部分,点击 添加自定义域 (Add Custom Domain)
  5. 输入您想使用的域名(例如 files.yourdomain.com)并保存。

使用方法

部署完成后,您可以通过浏览器或 curl 命令与您的文件共享服务进行交互。

  • 网页端: 直接访问您的 Worker 地址或自定义域名,即可看到简洁的上传和文件列表页面。

  • 上传文件 (使用 curl):

    1
    curl -X POST -F "file=@/path/to/your/file.txt" https://<您的 Worker 地址>
  • 下载文件: 直接在浏览器中点击文件名,或使用 curl:

    1
    curl -O https://<您的 Worker 地址>/<文件名>
  • 列出文件:

    1
    curl https://<您的 Worker 地址>

结论

恭喜!您已经成功搭建了一个私有、免费且功能强大的文件共享服务。您可以随时上传和分享文件,而无需担心服务器和带宽成本。