couchDB更新附件

时间:2012-10-03 16:07:44

标签: 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);
?>

但是,它会覆盖现有附件并使用新版本存储文档。

1 个答案:

答案 0 :(得分:4)

我不熟悉PHP的API,但通常在CouchDB REST API中,您可以上传附件而无需上传文档和其他以前上传的附件。在“确定指南”中查看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上传即可。