Couchdb 简明教程
CouchDB - Attaching Files
Attaching Files using cURL
你可以像电子邮件一样附加文件到 CouchDB。文件包含元数据,例如名称,以及包含的 MIME 类型和附件包含的字节数。若要将文件附加到文档中,你必须向服务器发送 PUT 请求。以下是要将文件附加到文档中的语法代码:
$ curl -vX PUT http://127.0.0.1:5984/database_name/database_id
/filename?rev=document rev_id --data-binary @filename -H "Content-Type:
type of the content"
请求具有多种选项,如下所示:
-
--data-binary@ − 此选项告诉 cURL 将文件的内容读入 HTTP 请求正文中。
-
-H − 此选项用于指定要上传的文件的内容类型。
Example
让我们通过向 CouchDB 发送 PUT 请求,将名为 boy.jpg, 的文件附加到数据库中 ID 为 001, 的文档上。在此之前,你必须获取 ID 为 001 的文档的数据,才能获取其当前 rev ID,如下所示:
$ curl -X GET http://127.0.0.1:5984/my_database/001
{
"_id": "001",
"_rev": "1-967a00dff5e02add41819138abb3284d"
}
现在,使用 _rev 值,向 CouchDB 服务器发送 PUT 请求,如下所示:
$ curl -vX PUT http://127.0.0.1:5984/my_database/001/boy.jpg?rev=1-
967a00dff5e02add41819138abb3284d --data-binary @boy.jpg -H "ContentType:
image/jpg"
Verification
若要验证附件是否已上传,请获取文档内容,如下所示:
$ curl -X GET http://127.0.0.1:5984/my_database/001
{
"_id": "001",
"_rev": "2-4705a219cdcca7c72aac4f623f5c46a8",
"_attachments": {
"boy.jpg": {
"content_type": "image/jpg",
"revpos": 2,
"digest": "md5-9Swz8jvmga5mfBIsmCxCtQ==",
"length": 91408,
"stub": true
}
}
}