incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Moritz Post <mp...@eclipsesource.com>
Subject Create Content-MD5 hash
Date Tue, 27 Sep 2011 13:29:50 GMT
Hallo CouchDB

I am trying to validate the integrity of data i upload to the couchdb.
Therefore i provide a valid MD5 hash alongside my PUT request. From what i
have gathered this md5 has to be base64 encoded. My problem is that i am not
able to create a valid hash. All i get is:

{"error":"content_md5_mismatch","reason":"Possible message corruption."}

I am currently experimenting with a CURL based approach but will need
to incorporate the hash creation into a java program later. Here is what is
did do create the md5 hash:

$ md5sum test.json
4bf3aac171ded1679d3501ccbd3e0d85  test.json
$ echo 4bf3aac171ded1679d3501ccbd3e0d85 | base64
NGJmM2FhYzE3MWRlZDE2NzlkMzUwMWNjYmQzZTBkODUK

So i have a hash value and now use it in my PUT request (verbose output):

$ curl -X PUT -H "Content-MD5: NGJmM2FhYzE3MWRlZDE2NzlkMzUwMWNjYmQzZTBkODUK"
-H "Content-Type: application/json" -v -d @test.json
http://localhost:5984/test/doc/test.json?rev=3-dd5bf35d8e95a0ccc5e2a1e0adf26ffb
* About to connect() to 192.168.6.168 port 5984 (#0)
*   Trying 192.168.6.168... connected
* Connected to 192.168.6.168 (192.168.6.168) port 5984 (#0)
* Server auth using Basic with user 'admin'
> PUT /test/doc/test.json?rev=3-dd5bf35d8e95a0ccc5e2a1e0adf26ffb HTTP/1.1
> User-Agent: curl/7.21.3 (i686-pc-linux-gnu) libcurl/7.21.3 OpenSSL/0.9.8o
zlib/1.2.3.4 libidn/1.18
> Host: 192.168.6.168:5984
> Accept: */*
> Content-MD5: NGJmM2FhYzE3MWRlZDE2NzlkMzUwMWNjYmQzZTBkODUK
> Content-Type: application/json
> Content-Length: 19
>
< HTTP/1.1 400 Bad Request
< Server: CouchDB/1.0.2 (Erlang OTP/R14B)
< Date: Tue, 27 Sep 2011 13:23:38 GMT
< Content-Type: text/plain;charset=utf-8
< Content-Length: 73
< Cache-Control: must-revalidate
<
{"error":"content_md5_mismatch","reason":"Possible message corruption."}
* Connection #0 to host 192.168.6.168 left intact
* Closing connection #0

I am running a couchdb 1.0.3.

The question is: how to properly create a md5 hash that validates the
upload.

Additionally i would like to know if it is only possible to validated
attachment uploads or is it also possible to validated the uploaded json
documents one creates in the couchdb?

Thank you
Moritz Post

-- 
-----------------------------------
Moritz Post
EclipseSource
Email: mpost@eclipsesource.com
Tel: +49-721-66-47-33-33
Fax: +49-721-66-47-33-29
http://www.eclipsesource.com/
========================= Legal Disclaimer =================================
According to Section 80 of the German Corporation Act
Innoopract Informationssysteme GmbH must indicate the following information:
Address: Stephanienstrasse 20, 76133 Karlsruhe Germany
General Manager: Jochen Krause
Registered Office: Commercial Register Mannheim HRB 107883
============================================================================

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message