【问题标题】:How to copy a Google Cloud Storage Bucket from project to project?如何将 Google Cloud Storage Bucket 从项目复制到项目?
【发布时间】:2017-03-27 09:46:29
【问题描述】:
我有一个在 project1 上运行 Postgres 的 Compute Engine 实例。我想将它迁移到 project2 上由 Google Cloud SQL 环境提供的完全托管的 postgres,因此是一个不同的项目。
为此,我已通过 SSH 连接到我的 VM 实例并将数据库转储到一个文件中。
现在我想将数据库恢复到 project2 上的 Google Cloud SQL。
我正在考虑将文件保存到 project1 的 存储桶,然后以某种方式将其移动到 project2,但我不知道如何从 project2 复制存储桶strong>project1 到 project2。
【问题讨论】:
标签:
google-cloud-storage
google-compute-engine
【解决方案1】:
我认为从您停止的地方开始的最快方法是,
-
转储文件后,在您的 SSH 会话中,检查实例上激活了哪个服务帐户。
$ gcloud 授权列表
复制标记为 ACTIVE 的帐户
- 31X0X6X0X4X8-compute@developer.gserviceaccount.com ACTIVE
- 然后,转到项目 2 的 Cloud Console 上的存储页面并创建一个新存储分区。
- 单击右侧的更多选项图标以编辑存储桶权限。将服务帐号添加为具有写入权限的用户实体。
-
将转储文件从您的实例复制到 project2 上的存储桶
$ gsutil cp /home/user/dump.gz gs://bucket-on-project2/
- 将数据库从存储桶导入 Google Cloud SQL
如果您只想在存储桶之间传输文件:
使用浏览器,
您可以在 Cloud Console 中导航到 Storage->Transfer。
使用 CloudSDK 并考虑到您对两个项目的两个存储桶都具有正确的写入/读取权限。
$ gsutil cp gs://bucket-on-project1/dump.gz gs://bucket-on-project2/