0

我一直盯着用 CouchDB 构建服务。该应用程序旨在让用户拥有无限的存储桶,原因有很多,并且运行良好。现在,由于某些企业功能,我已切换到 Couchbase。我正在使用 PouchDB,这就是我需要 Sync Gateway 的原因。可悲的是,我只能映射一个存储桶/数据库。

这对我来说是一个完美的解决方案:/db/bucket/etc

任何想法如何实现这一目标?

4

1 回答 1

5

Couchbase 服务器存储桶可以保存任意数据。对于 Sync Gateway,Couchbase Server 存储桶只是存储引擎目的地,与用户和数据访问无关。在 Sync Gateway 配置文件中,您可以列出持久保存到不同存储桶的多个数据库:

{
  "databases":{
    "db1": {
      "server": "http://localhost:8091",
      "bucket": "db1bucket"
    },
    "db2": {
      "server": "http://101.88.47.22:8091",
      "bucket": "db2bucket"
    }
  }
}

现在,假设您在配置文件中只声明了一个数据库,并希望用户可以访问某些文档。您可以使用其中一种身份验证方法,然后在此基础上编写一个同步函数,它将在通道中路由文档并授予用户访问这些通道的权限。通道是动态创建的,可以创建的数量没有限制。如果您不希望使用用户身份验证来访问通道中的文档,您可以为客户端的复制器指定通道名称(这更简单)。

推荐的方法是每个项目或应用程序使用一个同步网关数据库,而不是每个用户。因此,您可能必须将文档从不同的 CouchDB 数据库迁移到一个 Sync Gateway 数据库中。

于 2016-01-10T17:29:34.480 回答