incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Newson <rnew...@apache.org>
Subject Re: Can't upload a pic to CouchDB.
Date Tue, 16 Jul 2013 20:20:03 GMT
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 <rnewson@apache.org> 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 <yoursurrogategod@gmail.com> wrote:
>> On Tue, Jul 16, 2013 at 3:22 PM, Yves S. Garret
>> <yoursurrogategod@gmail.com>wrote:
>>
>>> On Tue, Jul 16, 2013 at 1:34 PM, Yves S. Garret <
>>> yoursurrogategod@gmail.com> wrote:
>>>
>>>> On Tue, Jul 16, 2013 at 1:12 PM, Robert Newson <rnewson@apache.org>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 <yoursurrogategod@gmail.com>
>>>>> wrote:
>>>>> > On Tue, Jul 16, 2013 at 11:39 AM, Yves S. Garret
>>>>> > <yoursurrogategod@gmail.com> wrote:
>>>>> >>
>>>>> >> On Tue, Jul 16, 2013 at 11:13 AM, Tim Tisdall <tisdall@gmail.com>
>>>>> 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
>>>>> >>> <yoursurrogategod@gmail.com
>>>>> >>> > 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?

Mime
View raw message