fraserspeirs has brought it to my attention that there's a problem with writing clients which resize image before upload. The EXIF specification stipulates that whenever an image is modified, the DateTime field must be touched. As a result, clients need to do this in order to be compliant, and many libraries do it automatically after a resize.
The problem is that this changes the MD5 for the image every time. So we completely lose the effectiveness of our "already-have-image" optimization. I'm having trouble thinking of good solutions so I figured I'd post here for input.
Some options I've thought of:
* ask clients to ignore exif spec: bad idea, most wouldn't be able to since their libraries to do the work for them.
* ignore the problem: we lose the ability to keep one gpic for multiple upics (if those were auto-resized by the client on upload)... but maybe this isn't so bad because unused gpics will be cleaned?
* make a mechanism that will resize server-side after the full-image md5 is verified: this requires more overhead on our end and is slow for the user uploading a 5 megapixel image.
Bleh, thoughts? Read more in Fraser's journal: