Cloudflare R2对象存储食用教程


## 准备
  • 一个现代浏览器(什么都行)
  • 你的 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,这俩API还能互通,这叫借鉴(不是)

启用R2

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

首先登陆CF后台

点击左侧的R2

然后Purchase R2 Plan

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

下图情况为成功

创建存储桶

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

然后Create Bucket

名字可以瞎写

然后Create

造个Workers访问你的桶

准备环境

先装Node.JS 18.1.0和npm 8.8.0

下载 | 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

附录

workers.dev在我们伟大的祖国里被黑名单了,直连打不开属正常,建议使用特殊方法