Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Google应用程序引擎数据存储写入:如何远程启用/禁用只读模式?_Java_Google App Engine_Readonly - Fatal编程技术网

Java Google应用程序引擎数据存储写入:如何远程启用/禁用只读模式?

Java Google应用程序引擎数据存储写入:如何远程启用/禁用只读模式?,java,google-app-engine,readonly,Java,Google App Engine,Readonly,在备份时读取时,其中: 我们强烈建议您在备份或还原期间将应用程序设置为只读模式 粗略检查后,似乎唯一的方法是通过GAE web管理UI,在该UI中,您可以禁用或重新启用页面内某处的写入 我想编写一些Ant构建文件和/或shell和/或Python脚本,让我能够自动备份/恢复GAE应用程序的数据存储。这意味着我需要一种方法来自动启用/禁用对数据存储的写操作(将我的应用程序从“只读”模式放入和退出),所有这些操作都是从一些脚本内部进行的(就像我说的,Ant、bash或Python) 所以我问:这可能

在备份时读取时,其中:

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

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

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

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

是您可以用来读取应用程序某些功能(如数据存储写入)状态的工具。不幸的是,这个Api只有读取状态的方法,而没有设置状态的方法

编辑:


由于代码必须参考Capabilities API以获取应用程序引擎中每个功能的状态,并避免因超过配额、系统维护等导致的故障。。。一种可能的解决方案是将一种接口放在功能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();
  }
}

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


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

因为可以通过Web管理应用程序设置状态(启用/禁用写入),我想知道我是否可以使用Firebug查看通过应用程序设置状态时发送的HTTP请求。我可能能够重新创建请求,并使用HttpClient或其他什么从脚本中激发它们。我只是想知道这是否会违反我对AppEngine的“使用条款”。我不明白为什么会这样,我不会使用任何他们还没有公开的API…有人可以在这里发言吗?@4herpsand7derpsago我不知道“使用条款”,但更容易使用一种接口,将功能API包装在标志内,以禁用或启用功能,并让您的代码参考此接口。您的应用程序必须参考Capabilities API以避免出现故障,因此请改为参考它,使您的代码参考新接口并在那里启用禁用功能。