首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过REST-API的Couchbase移动复制

通过REST-API的Couchbase移动复制
EN

Stack Overflow用户
提问于 2015-06-26 10:08:53
回答 1查看 418关注 0票数 6

在试图将couchbase手机(1.1.0版)集成到我们的混合移动应用程序(离子型)中时,我们在iOS上的推送复制中遇到了一个问题。

在应用程序中的某个时候(在创建了本地数据库之后等等),将成功地创建带有某些视图的设计文档。创建并启动连续的推拉复制。

当轮询推送复制状态时,我们注意到它在启动后不久就停止了(对于连续复制来说并不正常)。

Couchbase手机回复错误(404)

代码语言:javascript
复制
WARNING: CBL_Pusher[http://server:4985/bucket-sync-gateway]: _bulk_docs got an error: {
   error = "bad_request";
   id = "_design/app";
   reason = "Invalid doc ID";
   status = 400;
}

同步网关记录了一个类似的错误:

代码语言:javascript
复制
BulkDocs: Doc "_design/app" --> 400 Invalid doc ID (400 Invalid doc ID)

这种情况只发生在iOS上。android版本在复制方面没有问题(也许设计文档被忽略了?)

  • 为什么复制尝试在ios而不是android上同步设计文档?
  • 设计文档应该同步吗?
  • 是否有办法防止某些文件被同步?(本机api为复制提供了过滤机制,但rest-api没有)

知道这里有什么问题吗?

干杯,

伯特

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-26 18:18:04

您正在使用的Couchbase Lite和Sync网关的哪个版本?我相信每个版本的1.1都改进了这种行为。具体来说,当客户端试图上传设计文档时,同步网关现在返回403禁止请求,而不是400坏请求。Couchbase Lite复制器将继续跟踪此状态,而不是因错误而停止。

设计文档是有问题的,因为它们通常以映射、缩减或过滤函数的形式包含可执行(JavaScript)代码。出于安全原因,同步网关(如CouchDB)不允许非管理客户端上传。

更糟糕的是,让iOS应用程序下载设计文档可能违反了苹果开发者的协议,因为应用程序不允许执行下载的代码。(我之所以说“可能”是因为JavaScript代码是在web浏览器中运行的例外。design确实包含JS,您的PhoneGap应用程序代码确实在浏览器中运行,但是map/reduce/filter函数不是在浏览器中运行,而是在Couchbase调用的单独JS上下文中运行。我不是律师,我不知道苹果会怎么想。据我所知,它从来没有出现过。)

-Jens Alfke (移动架构师,Couchbase)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31070482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档