2012-10-03 58 views
1

我可以更新现有文档的附件而无需再次上传它们吗?couchDB更新附件

我想:

<?php 
    $json = ' 
    { 
     "_id":"attachment_doc", 
     "_rev":'.$rev.', 
     "_attachments": 
     { 
      "free-wallpaper-31.jpg": 
      { 
       "revpos":3, 
       "content_type":"image\/jpeg", 
       "data": "'.base64_encode(file_get_contents('free-wallpaper-31.jpg')).'" 
      } 
     } 
    } 
'; 

$doc = $couchdb->doc_upload_attachments('16beb67b990604791b3ffde7dd000576', $json); 
var_dump($doc); 
?> 

但是,这将覆盖现有的附件和存储与新修订的文档。

回答

4

我对PHP的API并不熟悉,但通常在CouchDB REST API中,您可以上传附件而无需上传文档和其他以前上传的附件。在The Definite Guide中查看attachment section of API chapter。在命令行中:

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" 

它适用于我:)而且,当上传成功时,文档的修订版本必须更改。如果您在使用您的语言的绑定上传时遇到问题,请使用标准的HTTP API上传。