PROBLÈMECouchDB Sur la volée des pièces jointes par la ligne de commande
Je veux être en mesure de joindre un/attachement multiple (s) que le document est créé, via la ligne de commande (voir ci-dessous) . Je peux seulement obtenir ceci pour fonctionner dans Futon (Couchbase), mais seulement après qu'un document ait été déjà créé.
J'ai essayé les suivantes:
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
}
}
}'
Cela ne entraîne l'erreur suivante:
{"error":"unknown_error","reason":"function_clause"}
Merci
Donc, je dois d'abord créer le document, obtenir un _rev et ensuite utiliser PUT pour attacher une image? Pourquoi n'est-il pas possible de faire cela simultanément? Et si les informations que je veux saisir proviennent d'un formulaire d'inscription, où l'utilisateur a la possibilité de télécharger une ou plusieurs images? Comment ferais-je cela? – EdvardG
Si vous recherchez un stockage hautement évolutif pour les objets binaires qui écrivent simultanément dans un seau, CouchDB n'est peut-être pas votre premier choix. Il existe encore plusieurs solutions de contournement pour votre problème: Stocker les copies locales des images téléchargées localement et les mettre en file d'attente pour le téléchargement séquentiel. Vous pouvez également stocker chaque image dans un document distinct (permet le téléchargement parallèle) et ajouter uniquement les _ids des documents image dans votre document utilisateur. Pour tout faire en une seule requête: Base64-encoder vos images et les inclure dans votre document JSON (laid en termes de performance). –
Si vous obtenez une erreur: "aucune correspondance trouvée: ..." mettez l'URL dans les guillemets: curl -v -X PUT 'http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af/artwork.jpg? rev = 2-2739352689 '--data-binary @ artwork.jpg -H "Type de contenu: image/jpg" – Andriy