我是否可以更新现有文档的附件而无需再次上传?
我试过了:
<?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);
?>
但是,它会覆盖现有附件并使用新版本存储文档。
答案 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上传即可。