In AzureBlobsStorageDriver._put_object(), when it is doing hash verification, it is comparing the locally calculated hash vs. headers['content-md5'] (after converting/decoding it) that was returned in the response headers from self._upload_object().
That's all good and it is working fine in my tests, but when it creates the return Object, it specifies hash=headers['etag'], which is an entirely different value (or, at least, a different representation of it). Is that correct? Any additional context you could provide on the etag vs. content-md5 headers? Thanks much, Jay