用 Cloudflare R2 搭建图床

24 年 2 月 18 日 星期日
1033 字
6 分钟

现状

经常使用 Markdown 写作的话,一定会遇到图片存储的问题,因此就需要一个稳定方便安全的图床。我曾经在这方便折腾了很长时间。一开始我使用 Github 充当图床存储图片,它会暴露所有图片而且难以管理这些图片。使用七牛云、阿里 OSS 等对象存储则需要准备备案过的域名,还会多出一笔额外开支。 我现在在使用 SM.MS 这个第三方图床,对比其他图床服务相对靠谱一点。但是由于使用的是免费版,所以偶尔会遇到上传受限的情况。

另外我现在上传图片的整个流程也比较繁琐,需要先去整理图片素材,上传到 tinypng 上进行图片压缩,然后再转换为 webp 格式,接着再上传到 SM.MS 上,最后找到文章需要插入图片的地方选择合适的图片进行插入。这样会不停地打断我写作过程,效率非常低。

偶然间了解到 Cloudflare 有一个 R2 对象存储服务,即没有出口带宽费用1,每个月的免费额度又满足了我的需求,能白嫖为什么要付费。正好趁着这个机会,改造一下我的图片上传流程。

免费额度计费方式
存储使用10 GB / month$0.015 / GB-month
A 类操作1 million requests / month$4.50 / million requests
B 类操作10 million requests / month$0.36 / million requests

折腾步骤

前置条件

首先应该确保你的 Cloudflare 账号应该添加了一个域名和一个支付方式例如 Paypal,我恰好都满足 😆。

创建存储桶

名称可以随意,地区可以选择亚太地区

为存储桶绑定一个自定义域名,例如我在这里分配了一个二级域名

生成令牌

点击「创建 API 令牌」安装下面的方式创建一个新的令牌:

创建令牌

然后会显示生产的令牌信息,注意退出该页面之前要先记下生成的访问密钥和访问密钥 ID,因为该信息只在第一次创建时才会显示,否则只能重新创建一个新的令牌啦。

密钥信息

设置图床

PicGo 是一个广受好评的跨平台图片上传工具,它支持了常见的多种图床,例如:七牛图床、又拍云。PicList 在 PicGo 的基础上添加了许多新的功能,比如:云端同步删除,云存储管理。安装 PicList 的步骤比较简单,不再赘述,点击前往下载

安装完成之后,打开主窗口开始下一步操作。首先找到「图床」下的「AWS S3」,按照下面的方式进行设置:

设置图床

设置完成之后,我们就可以正常上传图片到 Cloudflare R2 啦。但是为了节省云存储空间,提高图片加载速度,需要对图片进行适当压缩。PicList 中可以设置压缩,但是它是针对所有图片统一配置的,不够智能。可以使用 tinypng 对图片进行压缩,它可以根据图片选择合适的压缩比。

好消息是已经有人开发了相关的插件,下载安装即可,开源万岁!

  1. 在插件目录中搜索「tinypng」,点击安装。
  2. 点击右下角图标启用「transformer - tinypng」
  3. 前往 tinypng 官网,申请开发者 API。这个很好申请,只需要填写姓名和邮箱,就会收到一封邮件。点击邮件进入控制台添加一个 API key,复制这个 key。

    ⚠️ 对于免费用户,每个月只有 500 次的免费压缩额度,超出部分需要付费。

  4. 回到插件目录,点击「配置 plugin - picgo-plugin-tinypng」,填写刚刚的 API key。
配置 tinypng 插件

至此,大功告成!现在截图保存到剪切板,点击 PicList 菜单栏的对应图片就可以直接上传到图床,图片地址也复制好了。

参考

  1. Cloudflare R2 价格说明

文章标题:用 Cloudflare R2 搭建图床

文章作者:柃夏chapu

文章链接:https://www.lxchapu.com/posts/build-picbed-with-cloudflare-r2[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。