最新消息:

Cloudflare R2对象存储食用教程

站长 koic_zhzz 154浏览 0评论

准备

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

简介

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

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

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

  • 10GB免费存储
  • 每月一百万次A 类操作(包括 ListBucketsPutBucketListObjectsPutObjectCopyObjectCompleteMultipartUploadCreateMultipartUploadUploadPart, 和 UploadPartCopy也就是上传操作)
  • 每月一千万次B类操作(包括 HeadBucketHeadObject, 和 GetObject,也就是请求次数)
  • 免费的操作(包括DeleteObjectDeleteBucket和 DeleteMultipartUpload,也就是删除)

有一说一,CF的叫R2,AWS的叫S3,这俩API还能互通,这叫借鉴(不是)

启用R2

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

首先登陆CF后台

Cloudflare R2对象存储食用教程-1

点击左侧的R2

Cloudflare R2对象存储食用教程-2

然后Purchase R2 Plan

Cloudflare R2对象存储食用教程-3

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

Cloudflare R2对象存储食用教程-4

Cloudflare R2对象存储食用教程-5

下图情况为成功

Cloudflare R2对象存储食用教程-6

创建存储桶

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

Cloudflare R2对象存储食用教程-7

然后Create Bucket

Cloudflare R2对象存储食用教程-8

名字可以瞎写

然后Create

造个Workers访问你的桶

准备环境

先装Node.JS 18.1.0和npm 8.8.0

下载 | Node.js

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

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

然后输入以下的命令:

npm install -D wrangler

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

Cloudflare R2对象存储食用教程-1

然后输入:

npx wrangler login

提示这些

Cloudflare R2对象存储食用教程-2

Cloudflare R2对象存储食用教程-3

点Allow授权wrangler

Cloudflare R2对象存储食用教程-4

创建Worker

打开左侧Workers,Create Service

Cloudflare R2对象存储食用教程-5

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

Cloudflare R2对象存储食用教程-6

在刚创建好的worker点Settings-Variables

Cloudflare R2对象存储食用教程-7

找到R2 Bucket Bindings

Cloudflare R2对象存储食用教程-8

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

Cloudflare R2对象存储食用教程-9

部署Worker

npx wrangler init <上一步Worker名>

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

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

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 });
  }
}

Cloudflare R2对象存储食用教程-10

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

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

上图返回即为部署成功

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

附录

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

转载请注明:落伍老站长 » Cloudflare R2对象存储食用教程

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址