如何利用Cloudflare搭建图床(+ Piclist快速上传)- Bearalise

背景

写博客就要有图床,之前搭了一个国内版的,今天尝试用Cloudflare搭建一个海外版的。

开通Cloudflare R2

R2 是 Cloudflare 推出的免费对象存储服务,需要免费注册一个Cloudflare 账号才能使用,注册登录后,点击左侧边栏的 R2 访问服务,但需要注意的是开通 R2 服务需要绑定信用卡(国内外主流信用卡皆可),但并不会扣费,主要是为了验证用户身份使用:

创建图床 Bucket

Bucket即为存储桶,所有的资源的是需要放在存储桶中。开通 R2 服务后,点击右上角「创建存储桶」按钮进行创建:

起一个名字,其他选项如图:

开通后显示以下信息:

添加自定义域名

点击设置,找到自定义域名,填写需要的域名:

如果你的域名是托管在cloudflare的,会显示如下提示,点连接域即可:

配置完成后显示:

回到存储桶页面,显示以下信息,说明已经配置好了:

当我们完成上述配置后,可以回到存储桶「对象」界面,上传一张示例图片,点开详情则会显示该图片的访问地址,此时我们就拥有了一个可访问的图床服务了。

配置 Bucket 访问 API

每次都要打开 Cloudflare 页面手动上传图片的方式显然不够便捷。R2 提供了 S3 兼容的 API,可以方便地使用一些客户端/命令行工具进行上传、删除等操作。

需要在接下来的页面记录以下信息,请务必记录,出于安全考虑,下面的信息只出现一次:
访问密钥 ID

机密访问密钥

终结点:

安装Piclist

PicGo 和 Piclist 都是用于快速上传并获取图片 URL 的工具软件,有着较为丰富的插件生态,支持多种图床服务,但我试用了PicGo,发现不支持S3,Mac安装也麻烦,后来改用Piclist,发现这些问题都得到了很好的解决,以下是安装步骤。

  1. piclist 官网 下载安装最新版

  2. 运行piclist,会在顶部栏位有图标:

  3. 点击图标打开主窗口:

  4. 选择AWS S3

  5. 按下面方法配置:

    accessKeyID和secretAccessKey是API访问密钥,用于访问S3对象存储。请根据您的对象存储的官方文档获取。

    bucketName/存储桶名称

    存储桶名称是您在对象存储中创建的存储桶的名称。

    uploadPath/上传路径

    上传路径支持占位符,可用的占位符有:

    payload 描述
    {year} 当前日期 - 年
    {month} 当前日期 - 月
    {day} 当前日期 - 日
    {fullName} 完整文件名(含扩展名)
    {fileName} 文件名(不含扩展名)
    {extName} 扩展名(不含.)
    {md5} 图片 MD5 计算值
    {sha1} 图片 SHA1 计算值
    {sha256} 图片 SHA256 计算值
    {timestamp} Unix 时间戳
    {timestampMS} Unix 时间戳(毫秒)

    例如,如果您的上传路径为 images/{year}/{month}/{day}/{fullName},则图片将会按照日期存储在对应的文件夹中。

    region/区域

    请根据实际情况填写,例如 us-east-1, 如果是cloudflare R2,请填写 auto

    endpoint/自定义终端节点

    请根据实际情况填写,例如 https://s3.us-east-1.amazonaws.com

    urlPrefix/自定义域名

    自定义域名为可选项,如果不填写,则在复制链接、预览图片等操作时,将使用上面的终端节点。

  6. 回到上传界面,选择刚才配置好的项目,并上传图片,图片会显示在下拉列表中:

作者:Bearalise
出处:https://blog.952005.xyz/2025/02/16/how-to-use-cloudflare-to-build-image-hosting/
版权:本文版权归作者所有
转载:欢迎转载,但未经作者同意,必须保留此段声明,必须在文章中给出原文链接。

请我喝杯咖啡吧~

支付宝
微信