移动和重命名桶

创建存储桶时,您设置的某些属性是永久性的,无法更改,包括存储桶的名称、存储桶地理位置以及所属的项目。不过,您可以有效地移动或重命名存储桶:

  • 如果旧存储桶中没有数据,请删除该存储桶,然后创建另一个具有所需属性的存储桶

  • 如果旧存储桶中有数据,请创建一个具有所需属性的新存储桶,将数据从旧存储桶复制到新存储桶,然后删除旧存储桶及其内容。本页面上的步骤对此过程进行了介绍。

    • 如果您希望新存储桶与旧存储桶具有相同的名称,则必须将数据临时移至其他名称的存储桶。这样,您就可以删除原始存储桶,以便重复使用存储桶名称

    • 在位置之间移动数据会产生网络使用费。此外,移动数据可能会产生额外费用,具体取决于源数据的存储类别和目标存储桶的位置。如需了解详情,请参阅 Cloud Storage 价格

所需权限

控制台

如需使用 Google Cloud 控制台完成本指南,您必须拥有适当的 IAM 权限。如果要访问的存储桶在不是由您创建的项目中,则可能需要项目所有者为您提供包含必要权限的角色。

如需查看特定操作所需权限的列表,请参阅 Google Cloud 控制台的 IAM 权限

如需查看相关角色的列表,请参阅 Cloud Storage 角色。或者,您也可以创建一个自定义角色,并为其提供具体受限的权限。

命令行

为使用命令行实用程序完成本指南,您必须拥有适当的 IAM 权限。如果要访问的存储桶在不是由您创建的项目中,则可能需要项目所有者为您提供包含必要权限的角色。

如需查看特定操作所需权限的列表,请参阅 gcloud storage 命令的 IAM 权限

如需查看相关角色的列表,请参阅 Cloud Storage 角色。或者,您也可以创建一个自定义角色,并为其提供具体受限的权限。

REST API

JSON API

如需使用 JSON API 完成本指南,您必须拥有适当的 IAM 权限。如果要访问的存储桶在不是由您创建的项目中,则可能需要项目所有者为您提供包含必要权限的角色。

如需查看特定操作所需的权限列表,请参阅 JSON 方法的 IAM 权限

如需查看相关角色的列表,请参阅 Cloud Storage 角色。或者,您也可以创建一个自定义角色,并为其提供具体受限的权限。

将数据从一个存储桶移到另一个存储桶

控制台

使用 Google Cloud 控制台中的 Cloud Storage Transfer Service

  1. 如果您还没有目标存储桶,请创建该存储桶
  2. 在 Google Cloud 控制台中打开“转移”页面。

    打开转移页面

  3. 点击创建转移作业
  4. 按照分步演示操作,在完成每个步骤后点击下一步

    • 选择来源:使用 Google Cloud Storage 存储桶作为来源类型,直接输入所需存储桶的名称,或点击浏览查找并选择您需要的存储桶。

    • 选择目标位置:直接输入所需存储桶的名称,或点击浏览查找并选择您需要的存储桶。

    • 选择设置:选择转移后删除来源位置的文件选项。

    • 时间安排选项:您可以忽略此部分。

  5. 完成分步演示后,点击创建

    然后系统会开始将旧存储桶中的对象复制到新存储桶中。此过程可能需要一些时间;但是,点击创建后,您可以离开 Google Cloud 控制台。

    如需查看转移进度,请执行以下操作:

    在 Google Cloud 控制台中打开“转移”页面。

    打开转移页面

    如需了解如何在 Google Cloud 控制台中获取有关失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查

  6. 如果您在设置过程中选择了在转移完成后删除来源对象复选框,则在转移操作完成后,无需执行任何操作来删除旧存储桶中的对象。但是,您可能还想删除旧的存储桶,此操作必须单独执行。

命令行

  1. 如果您还没有目标存储桶,请创建一个目标存储桶

  2. 如需将来源存储桶的内容复制到目标存储桶,请使用以下方法之一:

    • 如需以递归方式将来源存储桶中的所有对象复制到目标存储桶,请将 gcloud storage cp 命令与 --recursive 选项结合使用:

      gcloud storage cp --recursive gs://SOURCE_BUCKET/* gs://DESTINATION_BUCKET

      其中:

      • SOURCE_BUCKET 是原始存储桶的名称,例如 old-bucket

      • DESTINATION_BUCKET 是您要向其中移动数据的存储桶的名称,例如 my-bucket

    • 如需以递归方式将来源存储桶中的所有对象和代管式文件夹复制到目标存储桶,请将 gcloud alpha storage cp 命令与 --include-managed-folders--recursive 选项结合使用:

      gcloud alpha storage cp --include-managed-folders --recursive gs://SOURCE_BUCKET/* gs://DESTINATION_BUCKET

      其中:

      • SOURCE_BUCKET 是原始存储桶的名称,例如 old-bucket

      • DESTINATION_BUCKET 是您要向其中移动数据的存储桶的名称,例如 my-bucket

  3. 如需删除来存储桶,请使用以下方法之一:

    • 如需以递归方式删除来源存储桶中的所有对象以及来源存储桶本身,请将 gcloud storage rm 命令与 --recursive 选项结合使用:

      gcloud storage rm --recursive gs://SOURCE_BUCKET

      其中 SOURCE_BUCKET 是原始存储桶的名称,例如 old-bucket

    • 如需以递归方式删除来源存储桶中的所有对象和托管式文件夹以及来源存储桶本身,请将 gcloud alpha storage rm 命令与 --recursive 选项结合使用:

      gcloud alpha storage rm --recursive gs://SOURCE_BUCKET

      其中 SOURCE_BUCKET 是原始存储桶的名称,例如 old-bucket

    • 如需删除来源存储桶中的对象和代管式文件夹而不删除来源存储桶本身,请在使用 gcloud alpha storage rm 命令时不带 --recursive 标志:

      gcloud alpha storage rm --all-versions gs://SOURCE_BUCKET/**

      其中 SOURCE_BUCKET 是原始存储桶的名称,例如 old-bucket

REST API

JSON API

  1. 如果您还没有目标存储桶,请创建该存储桶

  2. 将源存储桶中的每个对象复制到目标存储桶。

  3. 删除源存储桶中的每个对象

  4. 删除源存储桶

XML API

  1. 如果您还没有目标存储桶,请创建该存储桶

  2. 将源存储桶中的每个对象复制到目标存储桶。

  3. 删除源存储桶中的每个对象

  4. 删除源存储桶

后续步骤