如何将 Google Cloud Storage Bucket 从项目复制到项目?

Posted

技术标签:

【中文标题】如何将 Google Cloud Storage Bucket 从项目复制到项目?【英文标题】:How to copy a Google Cloud Storage Bucket from project to project? 【发布时间】: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

【问题讨论】:

【参考方案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/

【讨论】:

以上是关于如何将 Google Cloud Storage Bucket 从项目复制到项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 Google Compute Engine 服务帐户的范围以将数据写入 Google Cloud Storage 存储桶?

如何从 Node 中的图像 url 将图像上传到 Google Cloud Storage?

如何将 Google Cloud Storage 中的千兆字节数据加载到 pandas 数据帧中?

如何将文件从加密的 S3 存储桶复制到 Google Cloud Storage?

如何使用 Node.js 将 base64 编码图像(字符串)直接上传到 Google Cloud Storage 存储桶?

使用 Python 将 Google Cloud Storage 中的数据加载到 BigQuery 时,如何强制忽略双引号?