现在我有一批资源是放到阿里云 OSS 的,我希望在用户请求时,能够通过 Cloudflare Worker 存储到 R2 。

由于 R2 不支持从 OSS 回源取数据(只支持 S3 、Google )下面是我计划做的做法:

  1. 配置一个域名(称为 domainA )指向 R2 ;
  2. 配置一个域名(称为 domainB )指向特定的 Worker ,专门用于从 OSS 下载资源并上传到 R2 ;
  3. 设置 “转换规则( Transform Rules )”,当访问 domainA 且 response httpStatusCode = 404 的时候,执行:
    2.a 增加 Header:Location ,指向 domainB + DomainA fullPath (去除 host 部分),这个我测试过可以达到预期;
    2.b 增加 Header:status = 302 ,问题就在这里,Transform Rules 是不支持修改 status code 的;

我通过文档找到 custom-error-responses 这个产品,从文档来看似乎是支持修改响应状态码,并且还会保留其他响应 Header ,这样就可以达到 “修改 statusCode + 增加 Location” 的目的了。

不过我现在没有 PRO 套餐,个人买的话也不划算,我不确定 Transform Rules + custom-error-responses 是否可以协同达到我的预期目标。

如果你有 Cloudflare PRO 套餐的话,请帮忙验证下是否能够满足我说的这个需求,如果确认可以,请加我微信(就是我的用户名),我给红包,不胜感激。

为什么不全用 Worker ,目的还是节省经费,我上面的方案是当资源 404 的时候才会走 worker 搬运资源的逻辑,所以成本会少很多。

举报· 314 次点击
登录 注册 站外分享
2 条回复  
odirus 楼主 小成 2024-12-6 21:03:28
可能这段内容被 Cloudflare 识别为攻击,发就报错,用图片吧。 ![测试步骤]( https://imgur.com/a/JxaUbx3)
odirus 楼主 小成 2024-12-6 21:02:24
https://imgur.com/a/JxaUbx3
返回顶部