前言

之前看了一篇文章,关于介绍 Cloudflare R2 来搭建图床的方案,主要是白嫖 Cloudflare 的空间和 cdn 服务。我现在博客 DevNow 的 CDN 使用的是七牛云,偶尔还是有一点点的支出。

虽然不多,但是吧,看到有白嫖的方案,还是蠢蠢欲动,这不今天就来试着弄下看看。

1. 注册Cloudflare账号

先简单介绍下 Cloudflare 是一家提供网络安全和性能优化服务的公司。它的主要功能包括内容分发网络(CDN)、分布式拒绝服务攻击(DDoS)防护、互联网安全和优化,以及域名系统(DNS)服务。

Cloudflare R2Cloudflare 提供的对象存储服务。它类似于亚马逊的 S3(Simple Storage Service) ,但有一个显著的区别:Cloudflare R2 不收取出站带宽费用。这意味着用户在从存储中检索数据时不会被额外收费,这对于需要大量传输数据的应用来说是一个很大的优势。

R2 允许用户存储和管理大量的非结构化数据,比如图片、视频、备份文件等。它与 Cloudflare 的全球网络集成,提供了快速、安全的内容交付,适合需要高效、可靠的存储和分发解决方案的企业。R2 还支持与现有的 S3 API 兼容,方便那些已经在使用 S3 的用户迁移或扩展到 Cloudflare R2

2. 绑定域和解析DNS

在左侧网站面板中添加一个域名,由于我的 blog 域名已经在腾讯云上买完了,这里主要将 DNS 解析服务迁移到 Cloudflare

如果不是 DNS 解析不是 Cloudflare 的话,状态这里会显示让你去切换。我这里用腾讯云来举例子,具体步骤如下:

2.1 在腾讯云里域名的菜单下点击对应域名管理

2.2 然后点击修改 DNS 解析

2.3 这里我们把默认的 DNSPod 切换到 自定义DNS,然后填写对应的地址就好

下边这两个地址可以在 Cloudflare 中找到,填上就好,然后等待,快的话几分钟就好,好了之后 Cloudflare 会发送邮件通知,如下,这个时候表示已经成功解析过来了。

2.4 这个时候再回到网站这里发现状态已经成功变成活动了

3. 开通R2服务

通过左侧菜单导航进入到 R2 的服务,开通前需要绑定信用卡,支持 Visa 的都可以,方便后边对于超出免费额度或者开启一些收费服务。开通后即可创建存储桶:

创建后可以进入到桶的详情面板:

配置一个自定义域名,后边可以通过这个访问。

到这里基于 R2 的对象存储服务就基本完事了。后续就可以在存储桶中存储对象了。

4. PicGo 配置R2上传服务

为了缩减上传图片的工作流,我使用的是基于 PicGo 的上传方式,可以通过复制和 url 进行上传。这里主要记录下如何配置上传到 R2 服务的过程。

R2 是兼容S3的格式的,所以这里直接配置S3,插件里搜索 s3 的插件,安装即可:

在「插件设置」中选择安装,「图床设置」中就新增了 Amazon S3 选项。点击进入配置选项。

这里有几项配置需要尤其注意。

  • 应用密钥 ID,填写 R2 API 中的 Access Key ID(访问密钥 ID)
  • 应用密钥,填写 R2 API 中的 Secret Access Key(机密访问密钥)
  • 桶名,填写 R2 中创建的 Bucket 名称,如我上文的 yu-r2-test
  • 文件路径,上传到 R2 中的文件路径,我选择使用 {fileName}.{extName} 来保留原文件的文件名和扩展名。
  • 自定义节点,填写 R2 API 中的「为 S3 客户端使用管辖权地特定的终结点」,即 xxx.r2.cloudflarestorage.com 格式的 S3 Endpoint
  • 自定义域名,填写上文生成的 xxx.r2.dev 格式的域名或自定义域名,如我配置的 https://r2.laughingzhu.cn

上边的秘钥信息在 Cloudflare R2 的服务中可以找到:

创建一个新的 API 令牌,完成创建后,即可看到相关秘钥,安装上边的对应关系填入即可:

其他配置保持默认即可,确认参数无误后点击「确定」与「设置为默认图床」即可。

5. PicGo 增加自动压缩和转 webp 插件

我用的是 compress-next

有很多模式可以配置,我这里选的是 webp-converter

我主要是希望通过转换 webp 来优化图片加载。安转完记得进行默认配置:

然后启用即可,上传图片即可转换为 webp 格式 上传到 R2 服务

到这里我 blog 整体的静态资源已经从七牛云迁移到 Cloudflare R2 服务了,开始白嫖的日子了,舒服。

原文链接:Cloudflare R2 - 免费图

Cloudflare R2 - 免费图床的更多相关文章

  1. GitHub + jsDelivr + PicGo + Imagine 打造稳定快速、高效免费图床

    GitHub + jsDelivr + PicGo + Imagine 打造稳定快速.高效免费图床 前言 为什么要使用图床呢? 因为在不同平台发布同一篇文章的时候,最一个痛苦的点就是,图片存储问题,各 ...

  2. GitHub+PicGo构建免费图床及其高效使用

    搭建免费图床全过程! 一.搭建缘由 一开始搭建博客,避免不了要用许多图片,最初使用七牛云来做博客图床,但是后来发现,七牛云只有30天的临时域名,hhhhhhh,果然啊,天下就没有免费的好事啊~后来就发 ...

  3. GitHub+jsDelivr+PicGo 打造稳定快速、高效免费图床

    标题: GitHub+jsDelivr+PicGo 打造稳定快速.高效免费图床 作者: 梦幻之心星 347369787@QQ.com 标签: [GitHub, 图床] 目录: 图床 日期: 2019- ...

  4. 利用服务器+jsDelivr+GitHub搭建咱的免费图床

    前言 有人就问了你这个标题写错了?不应该是PicGo+jsDelivr+GitHub搭建咱的免费图床吗? 2333,是一个上传程序啊,不系写错了. 程序介绍 目前程序已实现两种模式上传到GitHub或 ...

  5. Chevereto免费图床搭建教程 | vps搭建免费图床教程

    Chevereto免费图床搭建教程 | vps搭建免费图床教程 本文首发于:https://chens.life/How-to-build-a-free-image-bed.html 前言 自从有了个 ...

  6. 教你如何使用github+jsDelivr搭建免费图床

    前言 之前写了一篇文章,教你如何使用Typora+PicGo实现图片自动上传到图床 . 这里我用的是七牛图床,七牛图床有一定的免费使用量(没记错的话应该是10个G),如果你的存储量超过这个大小就需要付 ...

  7. [超详细] [效能工具]Typora+PicGo+Github免费图床快速搭建,提升技术文档输出效率

    一.前言 在我们日常的学习和工作中,我们经常需要进行写作.尤其对于我们程序技术人员而言,工作中的技术方案文档或者接口文档等,都是经常需要用上的. 那么如果没有一个高效的工具,去帮助我们记录和创作,这将 ...

  8. 使用jsdelivr + GitHub + PicGo搭建免费图床

    前言 之前一直有开通有道云笔记会员,主要是为了会员markdown图片可以在线保存的功能,前一阵子会员到期,考虑这个功能可不可以自己单独实现,从而替代使用有道云会员. 通过网上搜索的方式,查询到了几种 ...

  9. 10分钟教你使用Picgo+GitHub+ jsDelivr搭建CDN加速免费图床

    前言 经常写Markdown或者博客的同学,肯定都要用到图床.图床是什么呢?其实相当于一个存储图片的网站,类似百度云这样,不过上传图片到图床后可以直接通过外链进行访问. 比如把本地一张a.jpg上传到 ...

  10. Typora + PicGo + B2 Cloud Storage 实现个人免费图床

    前言 22年底终于购入了Typora,想着之前使用时候的痛点就是在图片管理这一块. 我尝试过使用在线的图床工具进行图片上传再将链接放入Typora,但说实话非常麻烦. 也尝试过就将图片保存在本地,但当 ...

随机推荐

  1. Qt 之 emit、signals、slot的使用

    背景 ref : https://www.ibm.com/developerworks/cn/linux/guitoolkit/qt/signal-slot/index.html 信号和槽机制是 QT ...

  2. C#语言编写的仅有8KB大小的简易贪吃蛇开源游戏

    前言 今天大姚给大家分享一款由C#语言编写的仅有8KB大小的简易贪吃蛇开源游戏:SeeSharpSnake. 项目特点 该仓库中的项目文件和脚本可以用多种不同的配置构建相同的游戏,每个配置生成的输出大 ...

  3. 单芯片国产ARM+FPGA,复旦微FMQL20SM工业核心板正式发布!

  4. java 类的执行顺序

    java代码 package net.cybclass.sp; public class Test01 { public static void main(String[] args) { new c ...

  5. c++临时对象导致的生命周期问题

    对象的生命周期是c++中非常重要的概念,它直接决定了你的程序是否正确以及是否存在安全问题. 今天要说的临时变量导致的生命周期问题是非常常见的,很多时候没有一定经验甚至没法识别出来.光是我自己写.rev ...

  6. CF620E

    题目 CF620E 思路 这个题是一个在树上操作的题,每次操作的对象都是以一个结点为根的子树,在1e5的操作下暴力做法必然会超时 观察到c的范围很小,可以考虑状态压缩 考虑将此问题转化为区间问题,利用 ...

  7. git http(s) 保存用户密码

    git 常用配置 git记住密码 1.设置记住密码(默认15分钟): git config --global credential.helper cache 2.如果想自己设置时间,可以这样做: gi ...

  8. JMeter 逻辑控制之IF条件控制器

    逻辑控制之IF条件控制器 测试环境 JMeter-5.4.1 循环控制器介绍 添加While Controller 右键线程组->添加->逻辑控制器->While控制器 控制器面板介 ...

  9. mybatis源码分析:Mapper接口是什么

    在<mybatis源码分析:启动过程>中分析了mybatis的启动过程,mybatis的启动过程主要集中在解析其核心配置文件(mybatis-config.xml)上,把配置文件中的配置全 ...

  10. Jmeter函数助手11-BeanShell

    BeanShell函数用于简单的计算或者运行编程脚本. 表达式求值:填入脚本代码或脚本文件${__BeanShell(source("test.bsh"))} 存储结果的变量名(可 ...