This patch provides a 'hash' value for the stored object.
There are two approaches possible.
1) For every object stored / downloaded, calculate the MD5 hash on the fly. Store the cache info in a folder '.hash' - which is excluded from the content listing. Use this cached value in the future. If file time-stamp changes, update the cache
2) Just provide a MD5 hash of the stat.st_mtime of the file.
Approach (1) will give a true hash of the object.
Approach (2) will give an indication about changes in the object. Like an ETag.
Approach (2) is similar to how S3 storage works. The hash returned by S3 is not the content digest. It is just an ETag. So, in local storage, we can take Approach (2).
We can migrate to Approach (1) in the future, if required.