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

我一直在跟踪Firestore docs和此SO question

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

这是我所做的:

当尝试使用云外壳终端将文件从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: truemetadata: '@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存储桶没有任何新文件或文件夹。看起来导入什么也没做。我想念什么吗?

最佳答案

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

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

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

因此,您的默认存储桶将为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

关于firebase - 在项目之间转移Firebase存储桶,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57665475/

10-09 16:08
查看更多