创建存储桶时,您设置的某些属性是永久性的,无法更改,包括存储桶的名称、存储桶地理位置以及所属的项目。不过,您可以有效地移动或重命名存储桶:
如果旧存储桶中没有数据,请删除该存储桶,然后创建另一个具有所需属性的存储桶。
如果旧存储桶中有数据,请创建一个具有所需属性的新存储桶,将数据从旧存储桶复制到新存储桶,然后删除旧存储桶及其内容。本页面上的步骤对此过程进行了介绍。
如果您希望新存储桶与旧存储桶具有相同的名称,则必须将数据临时移至其他名称的存储桶。这样,您就可以删除原始存储桶,以便重复使用存储桶名称。
在位置之间移动数据会产生网络使用费。此外,移动数据可能会产生额外费用,具体取决于源数据的存储类别和目标存储桶的位置。如需了解详情,请参阅 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:
- 如果您还没有目标存储桶,请创建该存储桶。
在 Google Cloud 控制台中打开“转移”页面。
- 点击创建转移作业。
按照分步演示操作,在完成每个步骤后点击下一步:
选择来源:使用 Google Cloud Storage 存储桶作为来源类型,直接输入所需存储桶的名称,或点击浏览查找并选择您需要的存储桶。
选择目标位置:直接输入所需存储桶的名称,或点击浏览查找并选择您需要的存储桶。
选择设置:选择转移后删除来源位置的文件选项。
时间安排选项:您可以忽略此部分。
完成分步演示后,点击创建。
然后系统会开始将旧存储桶中的对象复制到新存储桶中。此过程可能需要一些时间;但是,点击创建后,您可以离开 Google Cloud 控制台。
如需查看转移进度,请执行以下操作:
在 Google Cloud 控制台中打开“转移”页面。
如需了解如何在 Google Cloud 控制台中获取有关失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查。
如果您在设置过程中选择了在转移完成后删除来源对象复选框,则在转移操作完成后,无需执行任何操作来删除旧存储桶中的对象。但是,您可能还想删除旧的存储桶,此操作必须单独执行。
命令行
如果您还没有目标存储桶,请创建一个目标存储桶。
如需将来源存储桶的内容复制到目标存储桶,请使用以下方法之一:
如需以递归方式将来源存储桶中的所有对象复制到目标存储桶,请将
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
。
如需删除来存储桶,请使用以下方法之一:
如需以递归方式删除来源存储桶中的所有对象以及来源存储桶本身,请将
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
如果您还没有目标存储桶,请创建该存储桶。
将源存储桶中的每个对象复制到目标存储桶。
XML API
如果您还没有目标存储桶,请创建该存储桶。
将源存储桶中的每个对象复制到目标存储桶。
后续步骤
探索存储桶移动工具,这是一种非官方工具,可以更轻松地移动存储桶。