写点什么

Cloudflare 为 R2 引入本地上传功能,跨区域写入延迟降低 75%

作者:Renato Losio
  • 2026-03-02
    北京
  • 本文字数:1228 字

    阅读完需:约 4 分钟

最近,Cloudflare 为R2引入了本地上传功能,并已开放公测。这项新功能为全球各地的用户提供了更好的写入性能,降低了跨区域写入延迟,而且无需更改存储桶的位置。

 

借助本地上传功能,对象数据会写入靠近客户端的位置,然后由 Cloudflare 利用在后台运行的任务复制到存储桶所在的区域,负责这项工作的任务被称为复制任务。根据文档介绍,在这个过程中,文件始终是即时可用且一致的。Cloudflare 系统工程师Frank ChenRahul Suresh以及产品经理Anni Wang写道:

 

本地上传加快了上传请求(即 PutObject、UploadPart)速度。不论是在客户的私有测试中,还是在我们的合成基准测试中,我们都看到,当上传请求与存储桶位于不同的区域时,TTLB 减少了高达 75%。在这些结果中,TTLB 是从 R2 接到上传请求到 R2 返回 200 响应的时间。

图片来源:Cloudflare 文档

 

如果客户端和存储桶位于不同区域,并且启用了新增的本地存储选项,R2 会在客户端区域写入存储基础设施,同时将对象元数据发布到存储桶所在的区域。Cloudflare 会处理后台复制。

图片来源:Cloudflare 博客

 

为了确保数据的安全性和可靠性,该系统通过队列任务和自动重试机制来管理后台复制。Chen、Suresh 和 Wang 补充说:

 

重要的是,对象在初始写入完成后立即就可以访问。在整个复制过程中,它始终保持可访问——不用等到后台复制完成之后才能读取对象。

 

为了实现这项功能,R2 将物理存储与逻辑元数据解耦,并在Durable Objects上构建了全球元数据服务。Durable Objects 是 Cloudflare Workers 提供的一项功能,使得应用程序在全球多个位置运行时也可以在一个一致的地方存储和管理数据。

 

这一新功能针对用户分布于全球各地的工作负载场景,在无需更改存储桶主位置的前提下,即可实现快速可靠的上传并提升上传性能。客户可通过监控R2存储桶指标页面上的区域请求分布图,查看读写请求的地理分布情况。甲骨文首席工程师 Sri Chavali 在 LinkedIn 上总结道

 

将 1GB 文件从一个区域上传至另一个区域的存储桶时,往返时间(RTT)是主要瓶颈。Cloudflare 的 R2 本地上传功能将文件上传到最近的 PoP,并利用 Durable Objects,、原子提交和基于拉取的复制管道将数据摄取与复制解耦,从而解决了“距离问题”。

 

Cloudflare 并不是唯一一个试图优化从全球各地向中央存储桶上传文件并减少跨区域写入延迟的超大规模提供商,亚马逊云科技也提供了一个类似的功能S3 Transfer Acceleration。R2 本地上传功能利用了本地写入与异步复制,而 S3 Transfer Acceleration 则是利用遍布全球的边缘节点来优化路由并减少互联网波动性——数据先上传至最近的 CloudFront 边缘节点,再通过亚马逊云科技的网络传输至存储桶。Google Cloud Storage 和 Azure Blob Storage 均未提供可以在全球各地支持本地写入的上传层。

 

在 Cloudflare R2 上启用本地上传不会产生额外的成本;上传请求只产生标准的 A 类操作成本,和没有本地上传一样。这里有一个演示程序,可用于在不同位置测试本地上传。

原文链接:

https://www.infoq.com/news/2026/02/cloudflare-local-uploads/