2017-03-26 1 views
0

J'ai installé couchdb et mingw64 sur mes fenêtres 10, je peux utiliser un futon pour faire fonctionner mon canapé db, pas de problème. Puis j'ai essayé la ligne de commande en utilisant curl. J'utilise une boucle pour créer la base de données nommée « my_database », je peux interroger à l'aide de « GET »:erreur de syntaxe curl: append document couchdb a échoué avec "conflit"?

$ curl -X GET http://localhost:5984/my_database/002 
% Total % Received % Xferd Average Speed Time Time  Time Current 
          Dload Upload Total Spent Left Speed 
100 81 100 81 0  0 397  0 --:--:-- --:--:-- --:--:-- 397{"_id":"002","_rev":"1-5e653801ca3cefde8abb6492ae3bcbcd","name":"mesi","age":23} 

Mais je ne peux pas faire une mise à jour des données, semble ma syntaxe boucle avait un problème:

$ curl -X PUT http://127.0.0.1:5984/my_database/002/msg.jpg?res=1-5e653801ca3cefde8abb6492ae3bcbcd --data-binary @/e/msg.jpg -H "ContentType:image/jpg" 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
          Dload Upload Total Spent Left Speed 
14 910k 100 58 14 128k  58 128k 0:00:07 --:--:-- 0:00:07 125M{"error":"conflict","reason":"Document update conflict."} 

Je sais que le fichier jpg est là:

$ ls /e/msg.jpg 
/e/msg.jpg 

Pourquoi je ne peux pas mettre à jour le document jpg comme attachement? Je suppose que je pourrais avoir une erreur de syntaxe en utilisant curl ou couchdb, mais comment y remédier? En utilisant futon_db: document créé, mais quel est le nom de la ressource URL?

Répondre

1

Chaque fois que vous mettez à jour un document/pièce jointe dans CouchDB, vous devez spécifier la révision (sinon cela peut provoquer des conflits). Je suppose que vous avez seulement oublié d'écrire rev correctement (vous avez écrit res).

Syntaxe tirée de this question:

curl -vX PUT http://localhost:5984/YOUR_DB/YOUR_DOCUMENT/YOUR_ATTACHMENT.jpg?rev=REVISION_OF_THE_DOCUMENT_BEFORE_UPLOADING_AN_ATTACHMENT --data-binary @FILE_ON_THE_DISK.JPG -H "Content-Type: image/jpg"