如何从项目到项目复制Google云存储桶?

时间:2017-03-27 09:46:30

标签: google-cloud-storage google-compute-engine

我有一个Compute Engine实例,其中Postgres在 project1 上运行。我想将其迁移到Google Cloud SQL环境提供的完全托管的postgres,在 project2 上,这是一个不同的项目。 为此,我已将SSH连接到我的VM实例并将数据库转储到文件中。

现在我想在 project2 上将数据库恢复为Google Cloud SQL。

我正在考虑将文件保存到 project1&#39> 存储桶中,然后以某种方式将其移至 project2 ,但我不知道如何将存储桶从 project1 复制到 project2

1 个答案:

答案 0 :(得分:3)

我想从你停下来的地方做的最快的方式是,

  1. 转储文件后,在SSH会话中,检查实例上激活的服务帐户。

    $ gcloud auth list

  2. 复制标记为ACTIVE

    的帐户
    - 31X0X6X0X4X8-compute@developer.gserviceaccount.com ACTIVE
    
    1. 然后,转到项目2的云控制台上的“存储”页面并创建一个新存储桶。
    2. 单击右侧的“更多选项”图标以编辑存储桶权限。将服务帐户添加为具有写权限的用户实体。
    3. 将转储文件从您的实例复制到project2上的存储区

      $ gsutil cp /home/user/dump.gz gs:// bucket-on-project2 /

    4. 从数据库
    5. 将数据库导入Google Cloud SQL

      如果您只想在存储桶之间传输文件:

      使用浏览器, 您可以在云端控制台中导航至Storage-> Transfer。

      使用CloudSDK并考虑您对两个项目中的两个存储桶都有正确的写入/读取权限。

      $ gsutil cp gs://bucket-on-project1/dump.gz gs://bucket-on-project2/