You really think that "Content-Type must be application/json" isn't telling you what you need to do (namely, set the content-type to application/json)? :)
B. On 16 July 2013 21:25, Yves S. Garret <[email protected]> wrote: > On Tue, Jul 16, 2013 at 4:20 PM, Robert Newson <[email protected]> wrote: > >> You can upload a document and all its attachments in one PUT request >> if you use multipart/related, yes. Check the test suite for a working >> example. >> >> B. >> >> >> On 16 July 2013 21:19, Robert Newson <[email protected]> wrote: >> > I think the error message is very descriptive and tells you exactly what >> to do. >> > >> > B. >> > >> > >> > On 16 July 2013 20:38, Yves S. Garret <[email protected]> >> wrote: >> >> On Tue, Jul 16, 2013 at 3:22 PM, Yves S. Garret >> >> <[email protected]>wrote: >> >> >> >>> On Tue, Jul 16, 2013 at 1:34 PM, Yves S. Garret < >> >>> [email protected]> wrote: >> >>> >> >>>> On Tue, Jul 16, 2013 at 1:12 PM, Robert Newson <[email protected] >> >wrote: >> >>>> >> >>>>> You need to pass the current rev, which clearly doesn't match the one >> >>>>> you tried and got the 409 conflict telling you it was wrong for. >> >>>>> >> >>>>> On 16 July 2013 18:07, Yves S. Garret <[email protected]> >> >>>>> wrote: >> >>>>> > On Tue, Jul 16, 2013 at 11:39 AM, Yves S. Garret >> >>>>> > <[email protected]> wrote: >> >>>>> >> >> >>>>> >> On Tue, Jul 16, 2013 at 11:13 AM, Tim Tisdall <[email protected]> >> >>>>> wrote: >> >>>>> >>> >> >>>>> >>> Do you have a space before "--data-binary" when you run the >> command? >> >>>>> >>> >> >>>>> >>> >> >>>>> >>> On Tue, Jul 16, 2013 at 11:05 AM, Yves S. Garret >> >>>>> >>> <[email protected] >> >>>>> >>> > wrote: >> >>>>> >>> >> >>>>> >>> > I'm going through this book and I'm in this section: >> >>>>> >>> > http://guide.couchdb.org/editions/1/en/api.html#attachments >> >>>>> >>> > >> >>>>> >>> > I try this in the command line and this is the error that I >> get: >> >>>>> >>> > % curl -vX PUT >> >>>>> >>> > >> >>>>> >>> > >> >>>>> >>> > >> >>>>> >> http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af/artwork.jpg?rev=2-2739352689--data-binary >> >>>>> >>> > @artwork.jpg -H "Content-Type: image/jpg" >> >>>>> >>> > zsh: no matches found: >> >>>>> >>> > >> >>>>> >>> > >> >>>>> >>> > >> >>>>> >> http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af/artwork.jpg?rev=2-2739352689 >> >>>>> >>> > >> >>>>> >>> > Am I making a stupid copy/paste mistake that's not immediately >> >>>>> >>> > obvious? There is an artwork.jpg in the directory that I'm >> working >> >>>>> >>> > in. >> >>>>> >>> > >> >>>>> >> >> >>>>> >> >> >>>>> >> Yes. >> >>>>> > >> >>>>> > >> >>>>> > This is what's in the database at the moment (if it helps): >> >>>>> > >> >>>>> > { >> >>>>> > "_id": "6e1295ed6c29495e54cc05947f18c8af", >> >>>>> > "_rev": "1-4b39c2971c9ad54cb37e08fa02fec636", >> >>>>> > "title": "There is Nothing Left to Lose", >> >>>>> > "artist": "Foo Fighters" >> >>>>> > } >> >>>>> > >> >>>>> > >> >>>>> > And I've attached the file with the actual DB. >> >>>>> >> >>>> >> >>>> Gotcha. It worked. Thanks. >> >>>> >> >>> >> >>> One more question, would it be possible to include multiple binary >> >>> uploaded files? >> >>> >> >>> This is what I tried and the results that I got: >> >>> >> >>> % curl -vX PUT " >> >>> >> http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af/artwork.jpg?rev=2-5ba0d72de94d89056e1f91ec900f5680 >> " >> >>> --data-binary @artwork.jpg --data-binary @sample2.jpg -H "Content-Type: >> >>> image/jpg" >> >>> * About to connect() to 127.0.0.1 port 5984 (#0) >> >>> * Trying 127.0.0.1... >> >>> * Adding handle: conn: 0x7fe5c4007c00 >> >>> * Adding handle: send: 0 >> >>> * Adding handle: recv: 0 >> >>> * Curl_addHandleToPipeline: length: 1 >> >>> * - Conn 0 (0x7fe5c4007c00) send_pipe: 1, recv_pipe: 0 >> >>> * Connected to 127.0.0.1 (127.0.0.1) port 5984 (#0) >> >>> > PUT >> >>> >> /albums/6e1295ed6c29495e54cc05947f18c8af/artwork.jpg?rev=2-5ba0d72de94d89056e1f91ec900f5680 >> >>> HTTP/1.1 >> >>> > User-Agent: curl/7.31.0 >> >>> > Host: 127.0.0.1:5984 >> >>> > Accept: */* >> >>> > Content-Type: image/jpg >> >>> > Content-Length: 161673 >> >>> > Expect: 100-continue >> >>> > >> >>> < HTTP/1.1 100 Continue >> >>> < HTTP/1.1 409 Conflict >> >>> * Server CouchDB/1.3.1 (Erlang OTP/R16B01) is not blacklisted >> >>> < Server: CouchDB/1.3.1 (Erlang OTP/R16B01) >> >>> < Date: Tue, 16 Jul 2013 19:19:45 GMT >> >>> < Content-Type: text/plain; charset=utf-8 >> >>> < Content-Length: 58 >> >>> < Cache-Control: must-revalidate >> >>> * HTTP error before end of send, stop sending >> >>> < >> >>> {"error":"conflict","reason":"Document update conflict."} >> >>> * Closing connection 0 >> >>> >> >>> This is the current record: >> >>> >> >>> { >> >>> "_id": "6e1295ed6c29495e54cc05947f18c8af", >> >>> "_rev": "2-5ba0d72de94d89056e1f91ec900f5680", >> >>> "title": "There is Nothing Left to Lose", >> >>> "artist": "Foo Fighters", >> >>> "_attachments": { >> >>> "artwork.jpg": { >> >>> "content_type": "image/jpg", >> >>> "revpos": 2, >> >>> "digest": "md5-dqqlZ2iJ4Mw9C6SNf7r+Pw==", >> >>> "length": 15138, >> >>> "stub": true >> >>> } >> >>> } >> >>> } >> >>> >> >> >> >> This is off-topic, but when I tried to setup a replication DB, this is >> the >> >> error that I got: >> >> >> >> % curl -X PUT http://127.0.0.1:5984/albums-replica >> >> {"ok":true} >> >> % curl -vX POST http://127.0.0.1:5984/_replicate -d >> '{"source":"albums", >> >> "target":"albums-replica"}' >> >> * About to connect() to 127.0.0.1 port 5984 (#0) >> >> * Trying 127.0.0.1... >> >> * Adding handle: conn: 0x7fb592808c00 >> >> * Adding handle: send: 0 >> >> * Adding handle: recv: 0 >> >> * Curl_addHandleToPipeline: length: 1 >> >> * - Conn 0 (0x7fb592808c00) send_pipe: 1, recv_pipe: 0 >> >> * Connected to 127.0.0.1 (127.0.0.1) port 5984 (#0) >> >>> POST /_replicate HTTP/1.1 >> >>> User-Agent: curl/7.31.0 >> >>> Host: 127.0.0.1:5984 >> >>> Accept: */* >> >>> Content-Length: 46 >> >>> Content-Type: application/x-www-form-urlencoded >> >>> >> >> * upload completely sent off: 46 out of 46 bytes >> >> < HTTP/1.1 415 Unsupported Media Type >> >> * Server CouchDB/1.3.1 (Erlang OTP/R16B01) is not blacklisted >> >> < Server: CouchDB/1.3.1 (Erlang OTP/R16B01) >> >> < Date: Tue, 16 Jul 2013 19:23:34 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"} >> >> >> >> Thoughts? >> >> >> >> But also, is there an index of general CouchDB errors that I can refer >> to >> >> and find >> >> out the general causes behind those errors? >> > > Gotcha, will investigate further.
