3

在阅读备份GAE 的 Datastore时,其中:

我们强烈建议您在备份或恢复期间将应用程序设置为只读模式...

经过粗略检查后,似乎唯一的方法是通过 GAE Web 管理 UI,您可以在其中禁用重新启用页面内某处的写入。

我想编写一些 Ant 构建文件和/或 shell 和/或 Python 脚本,让我能够自动备份/恢复我的 GAE 应用程序的数据存储区。这意味着我需要一种方法来自动启用/禁用写入(将我的应用程序从“只读”模式进出)到我的数据存储区,所有这些都来自某个脚本(就像我说的那样,无论是 Ant,bash或 Python)。

所以我问:这甚至可能吗?或者这是必须“手动”完成的事情(通过 Web 管理 UI)?提前致谢!

4

2 回答 2

3

Capabilities Python API是您可以用来读取应用程序某些功能(如 DataStore 写入)的状态的 API。不幸的是,这个 Api 只有读取状态的方法,但没有设置状态的方法。

编辑:


由于代码必须参考 Capabilities API 来获取 App-engine 中每个功能的状态,并避免因超额配额、系统维护等导致的故障......一种可能的解决方案是在 Capabilities 前面放置一种接口标志中的 API 以禁用每个功能。

伪代码即:

class DatasToreWriteCapabiliti{
  boolean DATASTORE_WRITE = true;

  public disable(){ DATASTORE_WRITE = false;}
  public enable(){ DATASTORE_WRITE = true;}

  public CapabilityStatus status(){
     if(DATASTORE_WRITE == false) return CapabilityStatus.DISABLED;

     CapabilitiesService service = CapabilitiesServiceFactory.getCapabilitiesService();
     return service.getStatus(Capability.DATASTORE_WRITE).getStatus();
  }
}
于 2012-10-27T07:46:18.063 回答
1

我认为您对“将您的应用程序设置为只读模式”的含义感到困惑:您认为这是 GAE 提供的服务,但它实际上意味着,在您的应用程序中,您创建了一种模式来防止写入同时您正在执行备份。

我希望 Web 界面提供的可选只读模式不是为在备份期间冻结而设计的,而只是为了管理数据存储的状态。

于 2012-10-31T15:38:11.213 回答