个人免费图床最佳方案:Cloudflare R2 + PicGo 教程

08yt

本文是结合 Cloudflare R2 提供的稳定对象存储服务和 PicGo 提供的便捷上传工具,为您打造一个高性能、免费且支持国内外网络访问的个人图床。我的一个机场网站正在使用这个部署方案,免费为网站图片提供图床。

优势

  1. 免费额度充足:Cloudflare R2 为个人用户提供了足够使用的免费额度。
  2. 服务稳定可靠:无需担心服务商“跑路”等问题。
  3. 网络环境无限制:生成的图片链接支持国内网络和国外网络双向打开,不存在网络环境限制。

第一步:Cloudflare R2 存储桶配置

1. 了解 R2 免费额度与前提条件

cloudflare R2 存储桶和PicGo软件

首先,访问 Cloudflare 网站并找到左侧导航栏的 R2 对象存储

  • 免费额度:R2 每月提供 10 GB 的免费存储空间。对于个人网站来说,这已足够使用。
  • 超额费用:即使超出免费额度,续费价格也大约在 一角钱一个 GB,相比其他云存储产品十分划算。
  • 请求次数:每月可免费写入 100 万次,免费读取 1 千万次,完全满足个人网站需求。
  • 前提条件:如果您是首次使用 Cloudflare,除了注册账号外,还需要添加一个付费计划,可以使用信用卡或国外区的 PayPal 账号。
  • 操作:点击“将 R2 订阅添加到我的账户”。

2. 创建存储桶(Bucket)

在 R2 页面,点击 “创建存储筒”

如何创建R2对象存储桶

  • 存储筒名称:名称可以自定义。
  • 位置选择:您可以根据自己网站的主要用户所在地来选择地区。例如,如果博客主要面向亚洲地区,可以选择 亚太地区
  • 完成创建:保持其他选项默认,点击右下角“创建存储筒”。

3. 允许公共访问

创建完成后,存储桶默认无法通过公共 URL 访问,需要进行进一步设置。(如果你的域名托管在cloudflare,就直接绑定一个二级域名,我就使用了一个img.ygjc.cc的二级域名,作为图床的访问地址。关于如何绑定,文章后面有教程。)

如何开启公共URL访问

  • 设置路径:点击存储筒右侧的 “设置”
  • 启用访问:向下滑动,找到 r2.dev 子域,点击 “允许访问”
  • 确认:在弹框中输入 allow,然后点击“允许”。
  • 生效:等待设置生效后,您就可以通过公共 URL 访问存储筒了。

4. 首次测试及发现问题

返回存储桶的对象页面,拖拽上传一张图片。

  • 测试结果:图片上传成功后,点击图片可以复制生成的网址。
  • 问题所在:在带有“梯子”(VPN)的网络环境下,该网址可以正常打开。但如果关闭“梯子”,国内网络将无法正常打开 Cloudflare R2 默认生成的网址。

第二步:配置自定义域名(解决国内访问问题)

为了解决国内网络访问受限的问题,并使图片网址更美观,我们需要通过自定义域名来替换 R2 分配的域名。

1. 将域名托管到 Cloudflare

  • 准备域名:需要提前准备一个域名(购买或免费域名均可)。
  • 添加网站:在 Cloudflare 左侧导航栏点击 “网站”
  • 输入域名:在现有域处填写准备好的域名,点击“继续”。
  • 选择计划:在付费计划中选择最下方的 “免费计划”,点击“继续”。

2. 更新名称服务器(DNS)

  • 获取名称服务器:在跳转页面,滑到第三项“更新名称服务器”处,Cloudflare 会生成两个名称服务器网址。复制并保存它们。
  • 修改 DNS:登录您的域名注册商的平台(例如阿里云控制台)。
  • 操作步骤:找到域名管理列表,选择“管理” -> “DNS 修改”,选择修改 DNS 服务器,然后将刚才从 Cloudflare 复制的两个网址填入并确定。
  • 等待激活:回到 Cloudflare 网站,等待状态从“待处理的名称服务器更新”变为 “活动” (通常需要等待一段时间)。

3. R2 连接自定义域名

域名托管到 Cloudflare 后,将其连接到 R2 存储桶。

  • 进入设置:点击左侧 R2 对象存储,进入您创建的存储筒,继续点击右侧的“设置”。
  • 连接域名:向下滑动找到 “自定域” 选项,点击 “连接域”
  • 填写域名:填入您托管到 Cloudflare 的域名,点击“连接域”。
  • 生效:自定义域需要几分钟时间进行初始化才能生效。
  • 最终测试:刷新页面,在存储桶对象页面打开图片,可以看到除了原网址外,还生成了自定义域名的网址。测试时,无论开启或关闭“梯子”,图片都应能 正常访问

第三步:使用 PicGo 增强上传体验

Cloudflare R2 自身的上传功能相对简单,不支持批量上传或图片压缩。推荐使用 PicGo,这是一个开源免费的工具,支持批量上传、图片压缩等功能,并通过插件支持 Cloudflare R2 等多个云存储平台。

PicGo 软件界面

1. PicGo 安装与 S3 插件

  • 下载安装:根据您的操作系统,在 PicGo 的下载页面下载并安装 PicGo。如果下载速度太慢,建议申请一个免费机场,搭上科学上网,提升下载速度。
  • 安装 S3 插件:(PicGo的最新版本,已经集成了s3插件。)
    • 打开 PicGo,点击左侧的 “插件设置”
    • 搜索 s3,选择并点击安装 S3 插件。R2 的配置将通过该 Amazon s3 插件实现。

2. Cloudflare 获取 API 令牌

为了让 PicGo 能够访问和写入 R2,需要生成 API 密钥。

  • 路径:回到 Cloudflare 网站,点击 R2 对象存储下的 “概述” 选项。
申请API令牌

  • 创建令牌:点击 “API” -> “管理 API 令牌” -> “创建 API 令牌”
  • 权限设置:自定义令牌名,权限处选择 “读对象和写”
  • 保存密钥:创建成功后,复制生成的 令牌 ID密钥 (M要/密要) 并保存到记事本。

3. PicGo S3 客户端配置


在 PicGo 中,展开左侧的图床设置,找到 Amazon s3,点击编辑默认设置。

配置项 填写内容 来源/说明
设定名称 自定义名称 方便识别
应用Key ID 填入 API 令牌 ID 从 Cloudflare 复制
应用Key 填入 API 密钥 从 Cloudflare 复制
筒(Bucket) 填入 R2 存储筒的名称 例如:blog
文件路径 建议填写 pikogo/ + 文件名 表示图片统一放在 blog 存储筒中的 pikogo 文件夹内
权限 保持默认
地区 填写 auto 或创建存储筒时选择的地区
自定义节点 (Custom Endpoint) 格式为 https://[账户 ID].r2.cloudflarestorage.com 需要用您的账户 ID 替换方括号部分。
获取账户 ID 在 Cloudflare R2 概数 -> API 选项下,选择“通过 API 来使用 R2 存储”即可看到账户 ID。
自定义域名 填入您托管到 Cloudflare 的域名 记得前面要加上 http://https://

配置完成后,点击确定,并将其设置为 默认图床

4. PicGo 上传与使用

  • 上传:点击 PicGo 左侧的“上传区”,拖拽图片即可批量上传。
PicGo软件的上传与图片链接获取

  • 获取链接:上传成功的图片会在“相册”中显示。点击左下角的复制按钮,即可复制图片网址。
  • 格式选择:PicGo 默认会自动转成 Markdown 格式,方便写作。如果不需 Markdown 格式,可通过按钮选择普通 URL 或其他格式。

至此,基于 Cloudflare R2 和 PicGo 的稳定、免费图床方案搭建完毕,适用于博客和个人网站。比如一个机场免费机场推荐网站,就正在使用这个免费图床方案。我使用了一个二级域名img.ygjc.cc。如需了解cloudflare二级域名的相关信息,请查阅:托管到cloudflare的域名,可以支持解析多少个二级域名?


形象比喻:

搭建 Cloudflare R2 图床,就像是您在自家的土地(自定义域名)上盖了一栋带有巨大仓库(R2 存储)的房子。这个仓库不仅免费,容量大,而且通过专业物流系统(PicGo)连接,您可以轻松地批量把货物(图片)放进去,而无论您和您的访客身处国内还是国外,都能直接、快速地访问到您仓库里的图片。

Post a Comment