将Cloudflare R2对象存储与Qexo静态博客对接,再通过腾讯云EdgeOne CDN进行加速,可以构建一个低成本、高性能且无需服务器的全球化博客系统。

下图清晰地展示了这套架构的数据流转与核心组件,可以帮助你快速理解整个系统:

流程图

下面,我们来一步步完成配置。

📋 准备工作

在开始配置前,请确保你已准备好以下服务和工具:

类别 具体要求
域名 一个已注册的域名,用于博客和图床访问。
云平台账户 Cloudflare腾讯云(用于EdgeOne)、GitHubGitLab账户。
对象存储 在Cloudflare控制台开通R2服务。
本地环境 电脑上安装好Node.jsGit
博客程序 选择Hexo等静态博客生成器,并已完成本地初始化。
管理后台 准备好在Vercel等平台部署好的Qexo管理后台。

🔧 核心步骤一:将R2配置为Qexo图床

此步骤的目标是让Qexo能将你上传的图片直接存储到Cloudflare R2。

  1. 在Cloudflare创建R2存储桶
    • 登录Cloudflare控制台,进入 R2 页面。
    • 点击 创建存储桶,输入一个唯一的名称(如 myblog-images)。
  2. 配置R2存储桶公开访问
    • 进入你创建的存储桶,找到 设置 -> 公开访问
    • 点击 连接域,绑定一个子域名(例如 images.yourdomain.com)作为公开访问地址。记下这个域名(如 https://images.yourdomain.com),稍后需要用到。
  3. 获取R2的API访问密钥
    • 在R2概述页面,点击 管理R2 API令牌 -> 创建令牌
    • 选择对应的存储桶权限。
    • 创建成功后,请立即并妥善保存生成的 访问密钥 ID机密访问密钥
  4. 在Qexo后台配置S3图床
    • 登录你的Qexo管理后台,进入 设置 -> 图床配置
    • 图床类型 选择 S3协议
    • 填写配置信息,具体参数对应关系如下:
Qexo 配置项 填写内容(示例) 对应 R2 信息
应用密钥 ID xxxxx 上一步获得的访问密钥 ID
应用密钥 yyyyy 上一步获得的机密访问密钥
myblog-images 你创建的存储桶名称
地区 auto 固定填写 auto
自定义节点 https://xxxxxxxx.r2.cloudflarestorage.com 创建令牌时提供的S3终端节点
自定义域名 https://images.yourdomain.com/{filename}.{extName} 你绑定的公开访问域名,并加上后缀格式
保存路径 {filename}.{extName} 可根据需要设置目录,如 blog/{year}/{filename}.{extName}

保存路径

文件上传后保存的路径 包含文件名

关键词 意义 示例
{year} 当前年份 21
{month} 当前月份 1
{day} 当前日份 2
{YEAR} 当前年份 2021
{MONTH} 当前月份 01
{DAY} 当前日份 02
{filename} 无后缀的文件名 image
{time} 时间戳 1640186955.4339228
{extName} 文件后缀名 png
{md5} 图片的 Md5-Hash 0c8bfe6821a91c3d96b25e2ea2dcf827

配置完成后,在Qexo编辑文章时点击上传图片,即可直接保存到R2。

⚡ 核心步骤二:配置EdgeOne CDN加速R2资源

此步骤利用EdgeOne的全球节点,加速国内及全球用户对R2中图片的访问,并能隐藏R2源站。

  1. 在腾讯云开通与配置EdgeOne
    • 登录腾讯云控制台,开通 EdgeOne 服务。
    • 在EdgeOne控制台,点击 域名管理 -> 添加域名
    • 填写用于加速的域名(例如 cdn.yourdomain.com),接入方式 选择 CNAME
    • (注:国际站与国内站配置方法相同,此处以国际站作为演示)
  2. 设置EdgeOne的回源地址
    • 源站类型 选择 对象存储(S3兼容)
    • 在源站地址中,填写你在Cloudflare R2存储桶的 公开访问域名(即 https://images.yourdomain.com)。
    • 回源类型 选择 HTTPS。 鉴权版本 选择 AWS signature v4
    • 地域 填写 auto
      EdgeOne 配置项 填写内容(示例) 对应 R2 信息
      Access Key ID xxxxx 上一步获得的访问密钥 ID
      Secret Access Key yyyyy 上一步获得的机密访问密钥
  • 源站为对象存储时只能使用源站域名作为回源 HOST 头

  1. 完成DNS解析
    • 根据EdgeOne提供的CNAME记录值,前往你的域名DNS服务商(如Cloudflare),为 cdn.yourdomain.com 添加一条CNAME记录,指向EdgeOne提供的地址。
  2. (可选) 配置缓存与安全规则
    • 缓存规则:在EdgeOne的 规则引擎 中,可为图片后缀(如 .jpg, .png)设置较长的缓存时间(如30天),提升重复访问速度。
    • 安全防护:可以启用EdgeOne的 Web防护,防止恶意访问。

🚀 后续使用与优化建议

完成上述配置后,你的图片访问链路就变成了:用户请求 -> EdgeOne CDN -> Cloudflare R2

  • 修改博客中的资源地址:将博客主题中引用的图片地址前缀,统一替换为你配置的EdgeOne加速域名(如 https://cdn.yourdomain.com)。
  • 验证加速效果:可以通过 ping 或第三方网站测速工具(如boce.com)对比加速前后的访问延迟。
  • 注意缓存刷新:如果更新了R2中的图片,需要到EdgeOne控制台手动刷新对应URL的缓存,用户才能看到最新内容。

💎 总结

通过这套方案,你将R2经济实惠的存储与EdgeOne对国内线路优秀的加速能力相结合,在几乎零服务器成本的前提下,为静态博客的图片等静态资源提供了快速、稳定的全球访问体验。

请注意:EdgeOne的配置界面可能会更新,若遇到差异,以腾讯云官方最新文档为准。

如果你在配置过程中遇到具体的报错信息,或者想了解Hexo与Qexo的详细部署细节,我可以为你提供更进一步的解答。

本文章由 AI 辅助生成,已经过人工核验。如有问题,请在评论区指出。