type
status
date
slug
summary
tags
category
icon
password
因为 Notion 笔记限制:“在免费版中,可以上传每个不超过5MB的图片、视频和文件附件”,且 Notion 支持通过公网可访问的 URL 嵌入多媒体资源——图片、视频等,所以想用 Cloudflare 免费产品快速实现一个对象存储,更自由的撰写博客~

一、蓝图

notion image

二、准备工作

(一)Cloudflare 账户和 Node.js 环境

  • Cloudflare 账户:确保您已经注册了一个 Cloudflare 账户。
  • Node.js 和 npm:在您的电脑上安装 Node.js (建议使用 LTS 版本),npm 会随之一起安装。我们将使用 npm 来安装 Cloudflare 的命令行工具。

(二)安装 Wrangler CLI

  • Wrangler 是 Cloudflare官方提供的用于开发和部署 Workers 的命令行工具。打开您的终端(Terminal 或 PowerShell),运行以下命令进行安装:
  • 安装完成后,通过以下命令驱动浏览器界面登录您的 Cloudflare 账户(这会打开一个浏览器窗口,请求您授权 Wrangler 访问您的 Cloudflare 账户):
  • 查看是否验证成功:
notion image

(三)创建 R2 存储桶 (Bucket)

您需要一个地方来存放上传的文件。
  • 登录 Cloudflare 控制台。
  • 在左侧菜单中,找到并点击 R2
  • 点击 创建存储桶 (Create bucket)
  • 输入一个全局唯一的存储桶名称,例如 my-awesome-uploads
  • 选择一个地理位置(Location),然后点击 创建存储桶

(四)开启 R2 存储桶的公网访问

为了让上传后的文件能通过 URL 公开访问,您需要为 R2 存储桶绑定一个域名。
  • 在 R2 存储桶列表中,点击您刚才创建的存储桶名称进入详情页。
  • 点击 设置 (Settings) 标签页。
  • 在"公开访问 (Public Access)"部分,点击 连接域 (Connect Domain)允许访问 (Allow Access)
  • 您可以直接使用 Cloudflare 提供的免费 r2.dev 子域名。格式通常是 <你的存储桶名称>.<你的账户ID>.r2.dev。Cloudflare 会自动为您生成这个域名。点击 允许 (Allow) 即可。
  • 记下这个公开域名,例如 my-awesome-uploads.xxxx.r2.dev,我们稍后会用到它来拼接文件的公开 URL。

三、开始实现

(一)创建 Worker 项目

  • 在您的终端中,使用 Wrangler 创建一个新的 Worker 项目:
  • 这会创建一个名为 r2-upload-worker 的文件夹。在初始化过程中,它会询问您几个问题:
notion image
  • 进入项目目录:

(二)配置文件 (wrangler.jsonc)

  • 将 R2 存储桶绑定到 Worker:
  • 编写 Worker 代码 index.ts:

(三)部署到 Cloudflare Workers

  • 写一个单页应用调用 Workers 的 API 上传多媒体资源,并部署。
notion image

(四)压缩图片以提速

使用 Cloudflare Images 转换 + Workers 实现托管在 CF 的图床无感压缩
 
测试 Midjourney 生图n8n 驱动的文献检索与邮件推送服务
Loading...