java - Google App Engine 数据存储写入 : How to enable/disable read-only mode remotely?

标签 java google-app-engine readonly

在阅读备份GAE's Datastore ,其中:

We strongly recommend that you set your application to read-only mode during a backup or restore...

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

我想编写一些 Ant 构建文件和/或 shell 和/或 Python 脚本,以允许我自动备份/恢复我的 GAE 应用程序的数据存储。这意味着我需要一种方法来自动启用/禁用对我的数据存储的写入(将我的应用程序放入和退出“只读”模式),所有这些都来自某个脚本(就像我说的,Ant,bash或 Python)。

所以我问:这可能吗?或者这是必须“手动”完成的事情(通过网络管理用户界面)?提前致谢!

最佳答案

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

编辑:


由于代码必须引用 Capabilities API 以获取 App 引擎中每个功能的状态,并避免因超额配额、系统维护等而导致的故障...一种可能的解决方案是在前面放置一种接口(interface)标志中的 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();
  }
}

关于java - Google App Engine 数据存储写入 : How to enable/disable read-only mode remotely?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13047091/

相关文章:

java - @Schedule 不在固定时间触发Service

java - 为什么在 Google App Engine 上运行的进程会挂起?

python - 使用 boto 从 Google App Engine 连接到 Route53 API

C# readonly 与 Java final

vb.net - 如何在 VB.NET 中创建属性 "Write Once Read Many"?

C# 属性 : why does this work?

java - 如何在eclipse中开始使用flex和java,开源方式

java - 欧拉计划作业 17

java.lang.VerifyError,类的数据核增强之后

java - 使用 Java 从本地驱动器将 JSON 文件上传到 BigQuery