私は、文書が作成されると、コマンド・ラインから、1 /複数の添付ファイル(複数可)を添付することができるようにしたいPROBLEMCouchDBのオンザフライ添付ファイル
(下記参照) 。私はこれをFuton(Couchbase)で働かせることしかできませんが、文書がすでに作成された後でなければなりません。
私は次のことを試してみました:
curl -X PUT 'http://username:[email protected]:5984/client_info'
curl -X POST 'http://username:[email protected]:5984/client_info' -H 'Content-Type: application/json' -d '{"client_type": "Private", "client_name": "John Doe","client_email": "[email protected]","client_city": "Toronto","created_at": "2011-09-06 12:45:03","expires_at": "2012-01-01 00:00:00", "_attachments": {
"test01.jpg": {
"content_type": "image/jpeg",
"length": 30189
}
}
}'
次のエラーでこれだけの結果:
{"error":"unknown_error","reason":"function_clause"}
おかげ
だから私は最初にドキュメントを作成し、_revを取得してからPUTを使って最終的に画像を添付する必要がありますか? これを同時に行うことができないのはなぜですか? 入力したい情報が、ユーザーが1つ以上の画像をアップロードすることができる登録フォームのものであればどうなりますか?これをどうやってやりますか? – EdvardG
バケットのようなものに並行して書き込むバイナリオブジェクト用のスケーラブルなストレージを探しているなら、CouchDBが最初の選択肢ではないかもしれません。 問題にはまだいくつかの回避策があります。アップロードされたイメージのローカルコピーをローカルに保存し、それらを順次アップロードするためにキューに入れます。あるいは、各イメージを別々のドキュメントに保存して(パラレルアップロードを許可する)、イメージドキュメントの_idsをユーザードキュメントに追加するだけです。 1つのリクエストですべてを行うには:画像をBase64エンコードして、JSON(パフォーマンス面では醜い)にイメージを組み込みます。 –
エラーが発生した場合:「一致するものは見つかりません:...」URLを引用符で囲みます: curl -v -X PUT 'http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af/artwork.jpg? rev = 2-2739352689 '--data-binary @ artwork.jpg -H "Content-Type:image/jpg" – Andriy