Google App Engine - 适用于不同域和应用的一个数据存储区

时间:2009-05-01 12:32:12

标签: google-app-engine

以某种方式可以访问一个数据存储区吗?或者从不同的域访问一个应用程序。

5 个答案:

答案 0 :(得分:20)

App Engine最近添加了对名为modules 的功能的支持(文档:gopythonjava

  

App Engine模块(或以下简称“模块”)是一项功能,允许开发人员将大型应用程序分解为可以共享有状态服务并以安全方式进行通信的逻辑组件。处理客户请求的应用程序可能包含单独的模块来处理其他任务:

     
      
  • 来自移动设备的API请求
  •   
  • 内部管理员式请求
  •   
  • 后端处理,例如结算管道和数据分析
  •   

创建新模块时,App Engine将创建与模块名称对应的URL。如果您只有一个模块,则名称将为default。 e.g。

  • 的http:// 默认 .myapp.appspot.com
  • 的http:// 移动-前端 .myapp.appspot.com
  • 的http:// 我模块 .myapp.appspot.com

使用Domain masking,您可以直接从:

  • www.myapp.com => HTTP:// 默认 .myapp.appspot.com
  • www.myapp-mobile.com => HTTP:// 移动-前端 .myapp.appspot.com
  • www.example.com => HTTP:// 我模块 .myapp.appspot.com

答案 1 :(得分:12)

每个应用都有自己的数据存储和内存缓存(在该应用的所有版本之间共享)。 现在似乎不可能在应用程序之间共享数据存储(除非你为此提供一些Web服务),但这将是一个很好的功能,所以也许你应该向Google提交功能请求 { {3}}

对于域名,您可以将您的应用与vote for it相关联。同一应用程序的多个域应该没有问题(SSL证书除外)。

答案 2 :(得分:3)

应用的每个版本都由相同的数据存储区支持。如果要限制对单个请求的访问,则需要向模型添加字段以强制执行该限制。如果你想走得那么远,数据存储区API中就会出现这种情况的低级钩子。

是的,您可以将单个App Engine应用程序添加到多个域 - 即使在多个Apps帐户中也是如此。

答案 3 :(得分:3)

Kyle的解决方案可行,但App Engine从未被设计为以这种方式使用。因此,如果您将应用程序设计为依赖于此类设置并且谷歌因任何原因而进行限制,那么您就会被搞砸。

答案 4 :(得分:2)

您可以使用Namespace Java API

进行多租户