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.