使用云存储备份一个并在另一个Google App Engine应用程序中还原?

时间:2014-12-16 22:17:08

标签: python google-app-engine

我的目标是复制我的Google App Engine应用程序。我创建了新的应用程序,并从源应用程序(python)上传所有需要的代码。然后我从源应用程序的云存储上传了以前创建的备份文件(首先我将这些文件下载到PC,然后将上传的文件下载到目标应用程序的GCS存储桶中)

之后我尝试使用"导入备份信息"从这些文件恢复数据。按钮。 备份信息文件已建立,我可以将其添加到可用备份列表中。但是当我尝试恢复时,我收到错误:"开始工作时遇到了问题。错误是:备份不可读"

此外,我尝试将这些文件上传回原始应用程序,并且我能够通过使用相同的过程从它们恢复,因此文件没有损坏。

我知道还有另一种在应用程序之间复制数据的方法,但我想使用这种方法。例如,如果我的Google帐户遭到黑客攻击而我无法访问原始应用程序数据,但我的硬盘驱动器上有所有备份数据。然后我可以简单地创建新应用并将所有数据复制到新应用...

有没有人遇到类似的问题,也许找到了一些解决方案?

谢谢!

2 个答案:

答案 0 :(得分:4)

是!!你想要做的是不可能的。原因是备份文件中有绝对引用到原始备份位置(存储桶)。因此,将文件移动到另一个GCS位置将无法正常工作。

相反,您必须将备份文件保留在原始GCS存储桶中,并为您的新项目提供对该文件夹的读取权限。这是在"编辑存储桶权限"选项。例如。加: 项目所有者-12345678 - 读者

现在,您可以通过"导入存储桶信息"从新项目中的该存储桶导入。

答案 1 :(得分:1)

鉴于此消息,我的猜测是目标应用程序对存储备份的存储区没有读取权限。在创建备份之前,将应用程序添加到该存储桶的允许用户,以便备份对象继承权限。