のリクエストを使用してCouchbase(v.4.6.2)バケットを作成しようとしています。モジュールはPython(3.5)で動作しますが、運がありません。ここでは、コードは次のようになります。Couchbase APIバケットの作成
import requests
import json
url = 'http://127.0.0.1:8091/pools/default/buckets'
cdb_login = 'Administrator'
cdb_pass = 'adminpassw0rd'
payload = {'bucketType': 'couchbase',
'authType': 'sasl',
'saslPassword': 'passw0rd',
'name': 'newBucket01',
'ramQuotaMB': 512,
'replicaNumber': 1,
'conflictResolutionType':'lww',
'flushEnabled': 1}
r = requests.post(url, auth=(cdb_login, cdb_pass), data=json.dumps(payload))
print(r.status_code, r.reason, r.text)
応答が誤りである:
400 Bad Request {"errors":{"authType":"invalid authType"},"summaries":{"ramSummary":{"total":4831838208,"otherBuckets":641728512,"nodesCount":1,"perNodeMegs":0,"thisAlloc":0,"thisUsed":0,"free":4190109696},"hddSummary":{"total":317653053440,"otherData":123855113749,"otherBuckets":29577092,"thisUsed":0,"free":193768362599}}}
私が代わりに基本的なデフォルトこのような1 HTTPDigestAuthを強制しようとした:
r = requests.post(url, auth=requests.auth.HTTPDigestAuth(cdb_login, cdb_pass), data=json.dumps(payload))
それは
401 Unauthorized
をスローします
(login aパスワードは上記と同じです)。だからどちらもうまくいかない。
「管理者」と「adminpassw0rd」は、私が127.0.0.1:8091でCouchbaseの管理GUIにアクセスするために使用するログとパスワードです。これらのパラメータは、仕事をし、私はbashのからCURLを使用する場合はバケットを作成します。
import subprocess
create_bucket_bash = ['curl', '-X', 'POST', '-u', 'Administrator:adminpassw0rd', 'http://127.0.0.1:8091/pools/default/buckets',
'-d', 'name=newBucket01',
'-d', 'conflictResolutionType=lww',
'-d', 'authType=sasl',
'-d', 'ramQuotaMB=512',
'-d', 'saslPassword=passw0rd',
'-d', 'bucketType=couchbase']
subprocess.call(create_bucket_bash)
何が足りないか、要求と間違ってやっているのですか?
ブリリアント!できます! – uzla