Cloudant CouchDB备份我的Sproutcore应用程序的最佳位置?

时间:2011-03-06 22:31:01

标签: couchdb hosting sproutcore paas cloudant

我有一个Sproutcore应用程序,它使用Cloudant托管的CouchDB。在devenv中,我使用Sproutcore代理将请求转发给Cloudant(由于单一来源策略,我显然无法从我的JavaScript中调用任意主机)。

您对托管应用的建议是什么? CouchApps加载脚本失败并出现模糊错误(请注意Sproutcore应用程序大约有40 MB的JavaScript和资源)。

2 个答案:

答案 0 :(得分:2)

托管直接与couchdb对话的应用程序的事情是,您受到相同原始策略的限制,因此提供SproutCore应用程序的服务器必须与访问couchDB数据库位于同一个域中。如果您的主机提供静态文件服务器,您可以使用它,但您最好的选择可能只是将其保存为沙发应用程序。

将SC部署为沙发应用程序的密钥是,您必须设置sc-build生成的URL以指向正确的位置。这可以使用类似这样的构建文件设置来完成:

:url_prefix => '<database>/_design/<designDocument>/'

这样链接指向正确的位置。

如果您愿意,您还可以设置CouchDB网址重写以获得更简单的网址。看看这里有关这方面的更多讨论:

https://groups.google.com/d/topic/sproutcore/-D-5T5yPg3A/discussion

PS:40mb似乎过大了!你有很多照片吗?如果你有那么多的JS / CSS,我会担心的。

答案 1 :(得分:1)

Cloudant(主要)在us-east-1b或us-west-1b可用区域的EC2上托管其集群。如果您无法部署为CouchApp,则应尝试将数据库群集旁边的应用程序层放置在一起。这将最大限度地减少Web服务器和数据库之间的延迟。

您可以通过获取EC2实例并在其上运行Web服务器来自行完成此操作,也可以使用在AWS上托管的第三方主机(例如Heroku)。

在这两种情况下,您都需要从Web服务器到数据库运行一个小代理。这就是为什么简单地在S3上托管不是一种选择。

将应用程序部署到Web服务器后,请不要忘记检查您的Web服务器和数据库是否位于同一AWS可用区域中。如果不是,只需ask Cloudant移动您的帐户。