在项目之间转移Firebase存储桶

Chr*_*oss 2 google-cloud-storage firebase

我正在尝试将一个Firebase项目的存储桶中的文件夹内容复制到另一个Firebase项目的存储桶中。

我一直在跟踪firestore docs和此问题

这两个项目都对他人的服务帐户具有必要的权限。

这是我所做的:

当尝试使用云外壳终端将文件从Project-A的默认存储桶中的文件夹传输到Project-B的默认存储桶时,我首先将项目设置为“ Project-A”。然后我跑了gcloud beta firestore export gs://[PROJECT_A_ID] --collection-ids=[FOLDER_TO_TRANSFER] --async。这将成功并在Project-A中创建一个名为“ 2019-08-26T21:23:23_26014 /”的文件夹。此文件夹包含一些元数据。接下来,我尝试通过将项目设置为Project-B并运行来开始导入。gcloud beta firestore import gs://[PROJECT_A_ID]/2019-08-26T21:23:23_26014 此操作完成,日志显示以下消息:

done: true metadata: '@type': type.googleapis.com/google.firestore.admin.v1beta1.ImportDocumentsMetadata collectionIds: - [FOLDER_TO_TRANSFER] endTime: '2019-08-26T21:25:56.794588Z' inputUriPrefix: gs://[PROJECT_A_ID]/2019-08-26T21:23:23_26014 operationState: SUCCESSFUL startTime: '2019-08-26T21:25:19.689430Z' name: projects/[PROJECT_B]/databases/(default)/operations/[SOME_ID_STRING] response: '@type': type.googleapis.com/google.protobuf.Empty

但是,Project-B存储桶没有任何新文件或文件夹。看起来导入什么也没做。我想念什么吗?

Jua*_*ara 5

您可以在GCP控制台中创建传输作业。只要您具有访问权限,就可以指定来自不同项目的源/目标存储桶。您可以通过设置“指定文件过滤器”来指定文件夹:

https://console.cloud.google.com/storage/transfer

您还可以使用的一部分gsutil工具gcloud将对象移动或复制到另一个存储桶。

因此,您的默认存储桶将是gs://[PROJECT_A_ID].appspot.comgs://[PROJECT_B_ID].appspot.com假设您要复制以下内容my_directory

gsutil cp -r gs://[PROJECT_A_ID].appspot.com/my_directory gs://[PROJECT_B_ID].appspot.com
Run Code Online (Sandbox Code Playgroud)