跳转到内容
搜索文档

数据位置

最后更新 查看 MarkdownAgent 设置

了解 R2 中存储数据的位置如何确定,以及控制存储桶中对象物理存储位置的不同可用输入。

自动(推荐)

创建新存储桶时,数据位置默认设置为 Automatic。目前,此选项根据创建存储桶请求的调用者位置,在最近的可用区域中选择存储桶位置。

位置提示

位置提示是创建存储桶时可选提供的参数,用于指示您预期数据将被访问的主要地理位置。

当您预期存储桶中数据的绝大部分访问来自与创建存储桶请求不同的位置时,位置提示可能是不错的选择。请记住,位置提示是尽力而为而非保证,应仅作为优化性能的手段,将经常更新的内容放置在更靠近用户的位置。

通过 Cloudflare 仪表板设置提示

您可以选择根据您的位置自动在最近的可用区域创建存储桶,或从列表中选择特定位置。

  1. 在 Cloudflare 仪表板中,前往 R2 object storage(R2 对象存储) 页面。

    Go to Overview ↗
  2. 选择 Create bucket(创建存储桶)

  3. 输入存储桶名称。

  4. Location(位置) 下,保持选择 None 以自动选择,或从列表中选择区域。

  5. 选择 Create bucket(创建存储桶) 完成存储桶创建过程。

通过 S3 API 设置提示

您可以使用 S3 API 通过 LocationConstraint 参数设置位置提示:

await S3.send(
	new CreateBucketCommand({
		Bucket: "YOUR_BUCKET_NAME",
		CreateBucketConfiguration: {
			LocationConstraint: "WNAM",
		},
	}),
);

有关其他 S3 SDK 的更多示例,请参阅示例

可用提示

支持以下提示位置:

Hint Hint description
wnam 北美西部
enam 北美东部
weur 西欧
eeur 东欧
apac 亚太
oc 大洋洲

其他注意事项

位置提示仅在首次创建具有给定名称的存储桶时生效。如果您删除并重新创建同名存储桶,将使用原始存储桶的位置。

管辖区域限制

管辖区域限制保证存储桶中的对象存储在特定管辖区域内。

当您需要确保数据存储和处理在管辖区域内以满足数据驻留要求(包括 GDPRFedRAMP 等本地法规)时,请使用管辖区域限制。

通过 Cloudflare 仪表板设置管辖区域

  1. 在 Cloudflare 仪表板中,前往 R2 object storage(R2 对象存储) 页面。

    Go to Overview ↗
  2. 选择 Create bucket(创建存储桶)

  3. 输入存储桶名称。

  4. Location(位置) 下,选择 Specify jurisdiction(指定管辖区域) 并从列表中选择管辖区域。

  5. 选择 Create bucket(创建存储桶) 完成存储桶创建过程。

从 Workers 使用管辖区域

要从 Workers 访问属于某个管辖区域的 R2 存储桶,您需要在 Wrangler 配置文件绑定中同时指定管辖区域和存储桶名称:

{
	"r2_buckets": [
		{
			"bindings": [
				{
					"binding": "MY_BUCKET",
					"bucket_name": "<YOUR_BUCKET_NAME>",
					"jurisdiction": "<JURISDICTION>"
				}
			]
		}
	]
}
[[r2_buckets]]
[[r2_buckets.bindings]]
binding = "MY_BUCKET"
bucket_name = "<YOUR_BUCKET_NAME>"
jurisdiction = "<JURISDICTION>"

有关入门的更多信息,请参阅从 Workers 使用 R2

通过 S3 API 使用管辖区域

使用 S3 API 或现有 S3 兼容 SDK 与属于已定义管辖区域的 R2 资源交互时,必须在 S3 端点中指定管辖区域

https://<ACCOUNT_ID>.<JURISDICTION>.r2.cloudflarestorage.com

您可以将管辖区域特定的端点用于任何支持的 S3 API 操作。使用管辖区域端点时,您将无法访问该管辖区域之外的 R2 资源。

以下示例展示如何使用 JavaScript 的 @aws-sdk/client-s3 包在 eu 管辖区域创建 R2 存储桶。

import { S3Client, CreateBucketCommand } from "@aws-sdk/client-s3";
const S3 = new S3Client({
	endpoint: "https://<account_id>.eu.r2.cloudflarestorage.com",
	credentials: {
		accessKeyId: "<access_key_id",
		secretAccessKey: "<access_key_secret>",
	},
	region: "auto",
});
await S3.send(
	new CreateBucketCommand({
		Bucket: "YOUR_BUCKET_NAME",
	}),
);

有关其他 S3 SDK 的更多示例,请参阅示例

可用管辖区域

支持以下管辖区域:

Jurisdiction Jurisdiction description
eu 欧盟
fedramp FedRAMP

限制

以下服务不与具有指定管辖区域的 R2 资源交互:

其他注意事项

R2 存储桶创建后,管辖区域无法更改。

这篇文档对您有帮助吗?