Cloudflare R2对象存储食用教程

  • ~2.29K 字
  • 次阅读
  • 条评论

全网首发

注意

目前 R2 已经支持绑定域名,要求域名接入在 Cloudflare
无需创建 Workers

准备

  • 一个现代浏览器(什么都行)
  • 你的 Cloudflare 账号
  • 虚拟卡或者其他卡
  • 你聪明的大脑
  • 你灵巧的双手

简介

官方说的是,Cloudflare R2 Storage —— 快速、可靠的对象存储,减免出口费用

隆重推出 Cloudflare R2 Storage —— 快速、可靠的对象存储,减免出口费用

目前,Cloudflare提供的免费套餐包含

  • 10GB免费存储
  • 每月一百万次A 类操作(包括 ListBuckets, PutBucket, ListObjects, PutObject, CopyObject, CompleteMultipartUpload, CreateMultipartUpload, UploadPart, 和 UploadPartCopy也就是上传操作)
  • 每月一千万次B类操作(包括 HeadBucket, HeadObject, 和 GetObject,也就是请求次数)
  • 免费的操作(包括DeleteObject, DeleteBucketDeleteMultipartUpload,也就是删除)

有三说四,CF的叫R2,AWS的叫S3,有没有谁家再出一个 Q1/T4

启用R2

在创建第一个存储桶之前,先去Cloudflare后台启用R2。

首先登陆CF后台

点击左侧的R2

然后Purchase R2 Plan

然后直接去付款,没用超就不会收钱,需要绑定信用卡,Visa、万事达这种

下图情况为成功

创建存储桶

上一步直接点Return to R2或者后台点左面R2

然后Create Bucket

名字可以瞎写

然后Create

造个Workers访问你的桶

准备环境

安装 Node.JS 和 npm

下载 | Node.js

在电脑里新建个文件夹,比如叫 objectstorage

打开刚刚新建的文件夹,按下Shift+鼠标右键,选择”在此处打开Powershell”(CMD也是可以的)

然后输入以下的命令:

1
npm install -D wrangler

出现如图所示情况就成功了

然后输入:

1
npx wrangler login

提示这些

点Allow授权wrangler

出现图中所示情况即为成功

创建Worker

打开左侧Workers,Create Service

名字随便造一个,Starter选哪个都行

在刚创建好的worker点Settings-Variables

找到R2 Bucket Bindings

Bucket选刚创建好的桶,变量名自己随便造一个,但要记住(记不住的可以动用你灵巧的双手去解决)

部署Worker

1
npx wrangler init <上一步Worker名>

按两个n一个y,然后去你刚刚的文件夹,<上一步Worker名> 里的src目录,找到index.js

原来的东西删掉,粘贴下面的代码进去,把11行的three3body改成之前创建的变量名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
addEventListener("fetch", (event) => {
event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
const url = new URL(request.url);
const key = url.pathname.slice(1);

switch (request.method) {
case "GET":
const object = await three3body.get(key); //three3body换成你自己的

if (!object) {
return new Response("Object Not Found", { status: 404 });
}

return new Response(object.body);

default:
return new Response("Route Not Found.", { status: 404 });
}
}

再更改 <上一步Worker名> 目录里的wrangler.toml

1
2
3
[[r2_buckets]]
binding = '创建的变量名'
bucket_name = '存储桶名字'

后面加上上面这段,名字自己改掉

然后保存,在命令行cd进<上一步Worker名>,然后npx wrangler publish

上图返回即为部署成功

测试地址
https://objectstorage.zyglq.workers.dev/threebody.jpg
https://r2.zeroyuki.cn/threebody.jpg