On Tue, Jul 16, 2013 at 4:19 PM, 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? > I disagree. After doing some more googling, this is what I've found: https://github.com/oreilly/couchdb-guide/issues/427 So, now, this will work: % curl -vX POST http://127.0.0.1:5984/_replicate -d '{"source" : "albums", "target" : "http://127.0.0.1:5984/albums-replica"}' -H"Content-Type: application/json" * About to connect() to 127.0.0.1 port 5984 (#0) * Trying 127.0.0.1... * Adding handle: conn: 0x7faa21008c00 * Adding handle: send: 0 * Adding handle: recv: 0 * Curl_addHandleToPipeline: length: 1 * - Conn 0 (0x7faa21008c00) 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-Type: application/json > Content-Length: 72 > * upload completely sent off: 72 out of 72 bytes < HTTP/1.1 200 OK * Server CouchDB/1.3.1 (Erlang OTP/R16B01) is not blacklisted < Server: CouchDB/1.3.1 (Erlang OTP/R16B01) < Date: Tue, 16 Jul 2013 20:22:22 GMT < Content-Type: text/plain; charset=utf-8 < Content-Length: 402 < Cache-Control: must-revalidate < {"ok":true,"session_id":"a28ec841b2f720d281d659b7ac7b3049","source_last_seq":3,"replication_id_version":3,"history":[{"session_id":"a28ec841b2f720d281d659b7ac7b3049","start_time":"Tue, 16 Jul 2013 20:22:22 GMT","end_time":"Tue, 16 Jul 2013 20:22:22 GMT","start_last_seq":0,"end_last_seq":3,"recorded_seq":3,"missing_checked":1,"missing_found":1,"docs_read":1,"docs_written":1,"doc_write_failures":0}]} * Connection #0 to host 127.0.0.1 left intact Honestly, as a n00b to CouchDB, this wasn't terribly obvious. And the online book would need to be updated.
