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

二、准备工作
(一)Cloudflare 账户和 Node.js 环境
- Cloudflare 账户:确保您已经注册了一个 Cloudflare 账户。
- Node.js 和 npm:在您的电脑上安装 Node.js (建议使用 LTS 版本),npm 会随之一起安装。我们将使用 npm 来安装 Cloudflare 的命令行工具。
(二)安装 Wrangler CLI
- Wrangler 是 Cloudflare官方提供的用于开发和部署 Workers 的命令行工具。打开您的终端(Terminal 或 PowerShell),运行以下命令进行安装:
- 安装完成后,通过以下命令驱动浏览器界面登录您的 Cloudflare 账户(这会打开一个浏览器窗口,请求您授权 Wrangler 访问您的 Cloudflare 账户):
- 查看是否验证成功:

(三)创建 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
的文件夹。在初始化过程中,它会询问您几个问题:

- 进入项目目录:
(二)配置文件 (wrangler.jsonc)
- 将 R2 存储桶绑定到 Worker:
- 编写 Worker 代码 index.ts:
(三)部署到 Cloudflare Workers
- 写一个单页应用调用 Workers 的 API 上传多媒体资源,并部署。

(四)压缩图片以提速
使用 Cloudflare Images 转换 + Workers 实现托管在 CF 的图床无感压缩
使用 Cloudflare Images 转换 + Workers 实现托管在 CF 的图床无感压缩
最近发现了 Cloudflare 有一个 Images 转换服务,可以用来处理图片,搭配 Workers,实现访问图片的 URL 不变,无感压缩图片,很适合图床使用。当然前提是图片托管到 CF,小黄云代理或是 R2 对象存储都可以。免费版每月有 5000 次的转换额度,实际上一张图片转换过一次后就会
- Author:沈林曦
- URL:https://aibhtt.com//article/cloudflare-r2-media
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts