Object PUT into Walrus has NO end-to-end integrity check
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Eucalyptus |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
The claim that the RESTful API is Amazon S3 compatible would fall short if this feature is not there.
Additional HEAD request after a PUT is the work around, but that is additional round trip and hence poor user experience for large objects.
Extract from Amazon AWS S3 documentation
Content-MD5
The base64 encoded 128-bit MD5 digest of the message (without the headers) according to RFC 1864. This header can be used as a message integrity check to verify that the data is the same data that was originally sent. Although it is optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity check. For more information about REST request authentication, go to REST Authentication in the Amazon Simple Storage Service Developer Guide
I just tried a simple PUT to the ECC service using boto and I found an etag header in the response. In fact, boto would generate an exception if no etag header was found in the response. Could you be more specific about what you feel is missing in Walrus?