2016-05-19 1 views
2

go-couchbaseクライアントライブラリを使用してCouchbaseデータベースに接続しようとしているTCPサーバーがありますが、アクセスしようとしているバケットが "イベント "は存在しません。Couchbase GoLangクライアントがバケットを見つけられない

Go用の公式のCouchbaseクライアントライブラリを使用すると、すべて正常に動作します。

私がこれらの2つのクライアントの間に気づいた違いは、「プール」の概念です。このプールを「デフォルト」に設定しました。

このGoクライアントには私のバケットが表示されません。

cb, err := couchbase.Connect("http://address:port") 
if err != nil { 
     log.Fatalf("Error connecting: %v", err) 
} 

cbPool, err := cb.GetPool("default") 
if err != nil { 
    log.Fatalf("Error getting pool: %v", err) 
} 

cbBucket, err := cbPool.GetBucketWithAuth("events", "username", "password") 
if err != nil { 
    log.Fatalf("Error getting bucket: %v", err) 
} 

答えて

1

何らかの認証エラーが発生しているとします。 APIはちょっと混乱します。 GetBucketWithAuthはこのように呼ばれるべきである。

GetBucketWithAuth(「イベント」、「イベント」、「パスワード」)

理由は、クライアントがバケツのユーザー名とバケットパスワードを望んでいることです。バケットユーザー名はバケット名と同じです。

これは私が強くgocbを使用して行くことをお勧めします - couchbaseしないでください。 gocbは公式のCouchbase Goクライアントであり、go-couchbaseはCouchbaseの内部でのみ使用されます。実際、go-couchbaseを使用するコンポーネントの多くはgocbを使用し始めます。これは、このライブラリが使いやすく、より整理されているからです。

https://github.com/couchbase/gocb

関連する問題