2012-10-03 59 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上傳。