CouchDB can already do this. If you supply a Content-MD5 request
header when uploading an attachment, CouchDB will reject the write if
it calculates a different MD5 than the one you supplied.

B.


B.

On Thu, Feb 3, 2011 at 3:24 PM, Paul Hirst <[email protected]> wrote:
> I'm thinking of storing files in couch. I would probably create a document 
> like
> {
>    _id : "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd",
>    md5  : "aaaaaaaaaabbbbbbbbbbccccccccccdd",
>    size : 10345662,
> }
> to store the basic metadata about the file. The _id would be the SHA-1 
> checksum of the file and the MD5 and size in bytes would be the other fields 
> in the document.
>
> Then I would attach the actual file as an attachment to this document.
>
> What I'm wondering if if there is any way to valid the checksums are correct. 
> Ideally couch would run a validation function which would checksum the 
> attachment and refuse the upload if it doesn't match the recorded md5, sha1 
> and size. Is there any way to achieve this?
>
> I'm thinking that a fallback measure which might be almost as good would be 
> to have a daemon which watches _changes and checks any new attachment to make 
> sure they are correct. If they aren't it could flag it up somehow and a human 
> can take some action. I'm only trying to protect against system bugs, not 
> malicious intent.
>
> Any thoughts would be gratefully received.
> ________________________________
> Sophos Limited, The Pentagon, Abingdon Science Park, Abingdon, OX14 3YP, 
> United Kingdom.
> Company Reg No 2096520. VAT Reg No GB 991 2418 08.
>

Reply via email to