本页面介绍如何使用双区域存储。
所需的角色
为了获得创建双区域存储桶所需的权限,请让您的管理员向您授予项目的 Storage Admin (roles/storage.admin
) IAM 角色。
此预定义角色包含创建双区域存储桶所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
storage.buckets.create
storage.buckets.enableObjectRetention
(仅当为存储桶启用对象保留配置时才需要)storage.buckets.list
(仅当使用 Google Cloud 控制台创建存储桶时才需要)resourcemanager.projects.get
(仅当使用 Google Cloud 控制台创建存储桶时才需要)
您也可以使用自定义角色或其他预定义角色来获取这些权限。要查看哪些角色与哪些权限相关联,请参阅适用于 Cloud Storage 的 IAM 角色。
如需了解如何授予项目角色,请参阅管理对项目的访问权限。
创建双区域存储桶
完成以下步骤以创建双区域存储桶:
控制台
- 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。
点击创建。
在创建存储桶页面上,输入您的存储桶信息。如需转到下一步,请点击继续。
点击创建。
如需了解如何在 Google Cloud 控制台中获取失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查。
命令行
使用带有 --location
和 --placement
标志的 buckets create
命令。
gcloud storage buckets create gs://BUCKET_NAME --location=MULTI-REGION --placement=REGION_1,REGION_2
其中:
BUCKET_NAME
是您正在创建的存储桶的名称。例如my-bucket
。MULTI-REGION
指定与底层区域关联的多区域代码。例如,在选择区域ASIA-SOUTH1
(孟买)和ASIA-SOUTH2
(德里)时,请使用IN
。REGION_1
指定存储桶所在区域的地理位置。例如ASIA-EAST1
。REGION_2
指定存储桶第二个区域的地理位置。例如ASIA-SOUTHEAST1
。
如果请求成功,该命令将返回以下消息:
Creating gs://BUCKET_NAME/...
如需查看使用 gcloud storage
创建存储桶时可用的选项的完整列表,请参阅 buckets create
选项。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。或者,您可以使用 OAuth 2.0 Playground 创建访问令牌,并将其包含在
Authorization
标头中。创建一个包含存储桶设置的 JSON 文件,其中必须包括
name
和location
。如需查看完整的设置列表,请参阅 Buckets:Insert 文档。以下是一些常用的设置,包括:{ "name": "BUCKET_NAME", "location": "MULTI-REGION", "customPlacementConfig": { "dataLocations": ["REGION_1", "REGION_2"] }, "storageClass": "STORAGE_CLASS" }
其中:
-
curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b?project=PROJECT_ID"
其中:
JSON_FILE_NAME
是您在第 2 步中创建的 JSON 文件的名称。PROJECT_ID
是将与您的存储桶相关联的项目的 ID,例如my-project
。
XML API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。或者,您可以使用 OAuth 2.0 Playground 创建访问令牌,并将其包含在
Authorization
标头中。创建一个包含以下信息的 XML 文件:
<CreateBucketConfiguration> <LocationConstraint>MULTI-REGION</LocationConstraint> <CustomPlacementConfig> <DataLocations> <DataLocation>REGION_1</DataLocation> <DataLocation>REGION_2</DataLocation> </DataLocations> </CustomPlacementConfig> <StorageClass>STORAGE_CLASS</StorageClass> </CreateBucketConfiguration>
其中:
-
curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-project-id: PROJECT_ID" \ "https://storage.googleapis.com/BUCKET_NAME"
其中:
XML_FILE_NAME
是您在第 2 步中创建的 XML 文件的名称。PROJECT_ID
是将与您的存储桶相关联的项目的 ID,例如my-project
。BUCKET_NAME
是您要为自己的存储桶指定的名称(须遵循存储桶命名要求),例如my-bucket
。
如果请求包含不受支持的区域,则系统会返回错误消息。如果请求成功,则系统不会返回响应。