管理增强型复制

转到概念

本页面介绍如何在双区域存储桶上管理增强型复制功能。

检查存储桶的复制状态

如需检查现有存储桶是否启用了增强型复制,请完成以下操作:

控制台

  1. 在 Google Cloud Console 中,转到 Cloud Storage 浏览器页面。

    转到浏览器

  2. 在存储桶列表中,点击要验证的存储桶的名称。

  3. 点击配置标签页。

  4. 如果该存储桶启用了增强型复制,则复制会设置为增强型

gsutil

使用 gsutil rpo get 命令:

gsutil rpo get gs://BUCKET_NAME/

其中:

  • BUCKET_NAME 是相关存储分区的名称, 例如 my-bucket

如果成功,则响应类似如下示例:

gs://my-bucket: ASYNC_TURBO

REST API

JSON API

  1. OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。 如需了解相关说明,请参阅 API 身份验证
  2. 使用 cURL,通过 GET Bucket 请求调用 JSON API

    curl -X GET \
      -H "Authorization: Bearer OAUTH2_TOKEN" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=rpo"

    其中:

    • OAUTH2_TOKEN 是您在第 1 步中生成的访问令牌的名称。
    • BUCKET_NAME 是相关存储分区的名称,例如 my-bucket

    响应如下例所示:

    {
      "name": "my-bucket",
      "projectNumber": "234...",
      ...
      "rpo": "ASYNC_TURBO"
    }

    请注意 rpo 键。值 ASYNC_TURBO 表示已启用 Turbo 复制。DEFAULT 表示已应用默认复制功能。双区域和多区域存储桶始终存在 rpo 字段,但单区域存储桶中不存在该字段。

设置 Turbo 复制

如需在现有双区域存储桶上启用或停用 Turbo 复制,请完成以下操作:

控制台

  1. 在 Google Cloud Console 中,转到 Cloud Storage 浏览器页面。

    转到浏览器

  2. 在存储桶列表中,点击所需存储桶的名称。

  3. 点击配置标签页。

  4. 复制行中,点击 修改

    随即显示的窗口表示您要启用 Turbo 复制还是停用 Turbo 复制

  5. 点击保存以确认新设置。

gsutil

使用 gsutil rpo set 命令:

gsutil rpo set STATE gs://BUCKET_NAME/

其中:

  • STATEASYNC_TURBO(用于启用 Turbo 复制)或 DEFAULT(用于停用 Turbo 复制)。

  • BUCKET_NAME 是相关存储分区的名称, 例如 my-bucket

如果成功,则不会返回响应。更改会立即生效。

REST API

JSON API

  1. OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。 如需了解相关说明,请参阅 API 身份验证
  2. 创建一个包含以下信息的 .json 文件:

    {
      "rpo": "STATE"
    }

    其中,STATEASYNC_TURBO(用于启用 Turbo 复制)或 DEFAULT(用于停用 Turbo 复制)。

  3. 使用 cURL,通过 PATCH Bucket 请求调用 JSON API

    curl -X PATCH --data-binary @JSON_FILE_NAME \
      -H "Authorization: Bearer OAUTH2_TOKEN" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=rpo"

    其中:

    • JSON_FILE_NAME 是您在第 2 步中创建的文件的路径。
    • OAUTH2_TOKEN 是您在第 1 步中生成的访问令牌。
    • BUCKET_NAME 是相关存储分区的名称,例如 my-bucket

    如果请求成功,则不会返回任何响应。

创建具有增强型复制功能的双区域存储桶

如需创建启用了增强型复制的新双区域存储桶,请完成以下步骤:

控制台

  1. 在 Google Cloud Console 中,转到 Cloud Storage 浏览器页面。

    转到浏览器

  2. 点击创建存储分区

  3. 创建存储分区页面上,输入您的存储分区信息。如需转到下一步,请点击继续

    1. 指定存储桶的名称部分,输入符合存储桶命名要求的名称。

    2. 选择数据存储位置部分,选择位置类型旁边的双区域,然后选中添加增强型复制功能复选框。

    3. 位置部分,选择一个可用的双区域。

    4. 为数据选择一个默认存储类别部分,为存储桶选择一个存储类别。默认情况下,系统会为上传到存储桶的所有对象分配该默认存储类别。

    5. 选择如何控制对对象的访问权限部分,选择访问权限控制选项。访问权限控制模型决定了如何控制对存储桶对象的访问权限

    6. 高级设置(可选)部分,添加存储桶标签,设置保留政策并选择 加密方法

  4. 点击创建

    如需了解如何获取有关 Cloud Storage 浏览器中失败操作的详细错误信息,请参阅问题排查

gsutil

使用 gsutil mb --rpo 命令:

gsutil mb -l LOCATION -c CLASS --rpo REPLICATION_TYPE gs://BUCKET_NAME/

其中:

  • LOCATION 指定存储桶的地理位置。如果未指定位置,则默认为 US 多区域。在此示例中,请指定双区域位置。例如 nam4

  • CLASS 指定存储类别。例如 NEARLINE

  • REPLICATION_TYPE 指定双区域和多区域存储桶的复制设置。DEFAULT 值表示默认复制,是双区域或多区域存储桶的有效选项。ASYNC_TURBO 表示增强型复制,是许多双区域存储桶的有效选项。如果未指定,则默认复制设置为默认复制。在此示例中,请使用 ASYNC_TURBO

  • BUCKET_NAME 是相关存储分区的名称, 例如 my-bucket

    如果请求成功,该命令将返回以下消息:

    Creating gs://BUCKET_NAME/...

REST API

JSON API

  1. OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。 如需了解相关说明,请参阅 API 身份验证
  2. 创建一个包含存储桶的设置的 .json 文件,其中必须包含存储桶的 name。如需查看完整的设置列表,请参阅 Buckets:Insert 文档。以下是一些常用的设置,包括:

    {
      "name": "BUCKET_NAME",
      "rpo": "REPLICATION_TYPE",
      "location": "BUCKET_LOCATION",
      "storageClass": "STORAGE_CLASS",
      "iamConfiguration": {
        "uniformBucketLevelAccess": {
          "enabled": true
        },
      }
    }

    其中:

    • BUCKET_NAME 是您要为自己的存储桶指定的名称(须遵循命名要求),例如 my-bucket
    • REPLICATION_TYPE 指定双区域和多区域存储桶的复制设置。DEFAULT 值表示默认复制,是双区域或多区域存储桶的有效选项。ASYNC_TURBO 表示增强型复制,是大多数双区域存储桶的有效选项。如果未指定,则默认复制设置为默认复制。在此示例中,请使用 ASYNC_TURBO
    • BUCKET_LOCATION 是您要用于存储自己的存储桶对象数据位置。由于您要创建启用了增强型复制的存储桶,并且存储桶的地理位置一旦创建便无法更改,因此请指定双区域。例如 NAM4
    • STORAGE_CLASS 是您的存储桶的默认存储类别,例如 NEARLINE
  3. 使用 cURL 调用 JSON API

    curl -X POST --data-binary @JSON_FILE_NAME.json \
     -H "Authorization: Bearer OAUTH2_TOKEN" \
     -H "Content-Type: application/json" \
     "https://storage.googleapis.com/storage/v1/b?project=PROJECT_ID"

    其中:

    • JSON_FILE_NAME 是您在第 2 步中创建的 JSON 文件的名称。
    • OAUTH2_TOKEN 是您在第 1 步中生成的访问令牌。
    • PROJECT_ID 是将与您的存储桶相关联的项目的 ID,例如 my-project

后续步骤