跳转到内容
搜索文档

本地上传(Local Uploads)

最后更新 查看 MarkdownAgent 设置

您可以在存储桶上启用 Local Uploads,以提升客户端从与存储桶不同区域上传数据时的上传请求性能。Local Uploads 先将对象数据写入附近位置,再异步复制到您的存储桶。数据立即可用并保持强一致性。

工作原理

以下各节说明 R2 在启用和未启用 Local Uploads 时如何处理上传请求。

未启用 Local Uploads

客户端向 R2 存储桶上传对象时,对象数据必须从客户端传输到存储桶的存储基础设施。当客户端与存储桶位于不同区域时,这可能导致更高延迟和更低可靠性。详情请参阅 R2 工作原理

启用 Local Uploads

向启用了 Local Uploads 的存储桶发起上传请求(即 PutObjectUploadPart)时,有两种处理方式:

  • 客户端与存储桶在同一区域: R2 遵循正常上传流程,对象数据从客户端上传到存储桶的存储基础设施。
  • 客户端与存储桶在不同区域: 对象数据先写入客户端附近的存储,再异步复制到您的存储桶。对象立即可访问,复制过程中保持持久性。
Local uploads
ClientEastern North America
EdgeEastern North America
R2 Gateway Worker
Object metadataObject data
Your bucketEastern Europe
Metadata Service
Object Data Infra
Data is uploaded and accessible

何时使用本地 upload

Local Uploads 适用于大量上传来自与存储桶所在地理区域不同的地区的场景。此功能适用于:

  • 用户分布全球
  • 上传性能和可靠性对应用至关重要
  • 希望优化写入性能而不改变存储桶主要位置

要了解读写请求发起的地理分布:

  1. 登录 Cloudflare 仪表板,前往 R2 Overview。

    Go to Overview ↗
  2. 选择您的存储桶。

  3. 选择 Metrics(指标),查看 Request Distribution(请求分布) 图表。

读取延迟注意事项

启用 local uploads 后,上传的数据可能在复制完成前暂时驻留在客户端附近。

若工作负载需要写入后立即读取,请考虑读取请求的来源。来自上传者区域的读取会很快,而来自存储桶附近区域的读取在复制完成前可能经历跨区域延迟。

司法管辖区限制

Local uploads 不支持具有司法管辖区限制的存储桶,因为需要将数据暂时路由到存储桶区域以外的位置。

启用 local uploads

启用 Local Uploads 时,现有上传将按预期完成,流量不会中断。

  1. 登录 Cloudflare 仪表板,前往 R2 Overview。

    Go to Overview ↗
  2. 选择您的存储桶。

  3. 选择 Settings(设置)

  4. Local Uploads(本地上传) 下,选择 Enable(启用)

运行以下命令:

npx wrangler r2 bucket local-uploads enable <BUCKET_NAME>

禁用 local uploads

您可以随时禁用 local uploads。使用 local uploads 的现有请求将完成复制,流量不会中断。

  1. 登录 Cloudflare 仪表板,前往 R2 Overview。

    Go to Overview ↗
  2. 选择您的存储桶。

  3. 选择 Settings(设置)

  4. Local Uploads(本地上传) 下,选择 Disable(禁用)

运行以下命令:

npx wrangler r2 bucket local-uploads disable <BUCKET_NAME>

定价

启用 local uploads 无额外费用。启用此功能的上传请求产生标准 Class A 操作费用,与未启用 local uploads 的上传请求相同。

这篇文档对您有帮助吗?