【问题标题】:curl syntax error: append couchdb document failed with "conflict"?curl 语法错误:附加 couchdb 文档因“冲突”而失败?
【发布时间】:2017-03-26 14:36:33
【问题描述】:

我已经在windows 10上安装了couchdb和mingw64,我可以使用futon来操作我的couch db,没问题。然后我尝试使用 curl 命令行。 我使用 curl 创建名为“my_database”的数据库,我可以使用“GET”查询它:

$ 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}

但我无法进行任何数据更新,看来我的 curl 语法有问题:

$ 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."}

我知道 jpg 文件在那里:

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

为什么我无法将 jpg 文件更新为附件?我想我在使用 curl 或 couchdb 时可能会遇到一些语法错误,但是如何解决呢?

使用 futon_db: 创建文档,但是它的 URL 资源名称是什么?

【问题讨论】:

    标签: linux curl docker couchdb document


    【解决方案1】:

    每当您在 CouchDB 中更新文档/附件时,都需要指定修订版(否则会导致冲突)。我猜你只是忘了正确地写 rev (你写了 res)。

    语法取自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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-05
      • 1970-01-01
      相关资源
      最近更新 更多