【问题标题】:Couchbase Sync Gateway: Multiple buckets per databaseCouchbase 同步网关:每个数据库有多个存储桶
【发布时间】:2016-01-10 12:12:00
【问题描述】:

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

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

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

【问题讨论】:

    标签: couchdb couchbase pouchdb couchbase-sync-gateway


    【解决方案1】:

    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"
        }
      }
    }
    

    现在,假设您在配置文件中只声明了一个数据库,并希望用户可以访问某些文档。您可以使用authentication methods 之一,然后在此基础上编写Sync Function,它将路由channels 中的文档并授予用户访问这些频道的权限。通道是动态创建的,可以创建的数量没有限制。如果您不希望使用用户身份验证来访问频道中的文档,您可以在客户端指定channel names to the replicator(更简单)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-10
      • 2012-05-20
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多