返回
查看: 1|回复: 0
创意设计

使用Cloudflare Worker的免费账户限制R2的支出

[复制链接]
yazou yazou 2025-3-27 00:00:00 1 阅读

6075

主题

0

回帖

3945

积分

超级版主

积分
3945
众所周知CF R2提供了10GB了免费空间和每月一千万次的免费Class B操作。也就是说如果开一个存储桶,并且设置为公开的话,每个月被刷一千万次之后就开始收费,而且上不封顶,没有限制的方法。
为了这个存储桶能够被外界访问到但是同时不会一夜破产,可以使用免费套餐的CF Worker作为限制,它在一天100000次请求之后就会罢工。
如果创建一个CF Worker把私有桶映射为公开桶,那么就可以把每天的访问次数限制在10w次,然后每月限制为300w次。
  1. export default {
  2.   async fetch(request, env) {
  3.     const path = decodeURIComponent(new URL(request.url).pathname.slice(1));
  4.     if (!path) {
  5.       return new Response("Not Found", { status: 404 });
  6.     }
  7.     try {
  8.       const file = await env.OPCT.get(path);
  9.       if (!file) {
  10.         return new Response("Not Found", { status: 404 });
  11.       }
  12.       const headers = new Headers();
  13.       headers.set('Content-Type', file.httpMetadata?.contentType || 'application/octet-stream');
  14.       return new Response(file.body, { headers });
  15.     } catch (error) {
  16.       return new Response("Server Error", { status: 500 });
  17.     }
  18.   }
  19. }
复制代码
设置绑定那里把桶绑定到OPCT名称上就行
另外Worker的放置位置保持在默认就行,选择智能的话反而Worker全都运行在桶的地理位置
另外如果不是为了白嫖,那Backblaze B2的存储价格低一些。
回复

使用道具 举报

评论
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Loading...
关注公众号
Archiver|小黑屋|yazou! 劰载中...

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部