[英]Uploading XML file to CouchDB through CURL via command-line
我无法使用cmd行上的curl将名为filesystem.xml
的XML文件发送到CouchDB。
我首先创建一个名为my_db的新数据库:
curl -X PUT http://127.0.0.1:5984/my_db
{"ok":true}
到目前为止,我已经尝试了几种方法将xml文档上传到该数据库,包括:
curl -vX POST http://127.0.0.1:5984/my_db -H "Content-Type: text/xml" -d @filesystem.xml
输出:
* About to connect() to 127.0.0.1 port 5984 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 5984 (#0)
> POST /my_db HTTP/1.1
> User-Agent: curl/7.21.0 (i386-redhat-linux-gnu) libcurl/7.21.0 NSS/3.12.10.0 zlib/1.2.5 libidn/1.18 libssh2/1.2.4
> Host: 127.0.0.1:5984
> Accept: */*
> Content-Type: text/xml
> Content-Length: 3091
> Expect: 100-continue
>
< HTTP/1.1 415 Unsupported Media Type
< Server: CouchDB/1.0.2 (Erlang OTP/R14B)
< Date: Thu, 01 Mar 2012 16:18:14 GMT
< Content-Type: text/plain;charset=utf-8
< Content-Length: 78
< Cache-Control: must-revalidate
<
{"error":"bad_content_type","reason":"Content-Type must be application/json"}
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
服务器的响应显示HTTP/1.1 415 Unsupported Media Type
,表明存在问题。 我该如何解决?
我最近才开始玩CouchDB和curl,所以我知道我肯定缺少明显的东西。 随时为这个新手详细说明您的答案。
我发现您无法将文件直接上传到数据库。 仅当将文件附加到数据库中的现有文档时,才可以存储文件。
以下说明演示了我正在尝试做的事情。
1)创建一个虚拟文档:
curl -X POST http://localhost:5984/my_db -H "Content-Type: application/json" -d {}
{"ok":true,"id":"4f674a5b32bbd4e0a97f00817b0006d1","rev":"1-967a00dff5e02add41819138abb3284d"}
2)上传XML文件 。 您需要使用上一条命令返回的id和修订版值来执行此操作:
curl -X PUT http://127.0.0.1:5984/my_db/4f674a5b32bbd4e0a97f00817b0006d1/attachment?rev=1-967a00dff5e02add41819138abb3284 --data-binary @filesystem.xml -H "Content-Type: text/xml"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.