Hi.
We're using jclouds 1.9.1 with the aws-s3 provider. Until now, we have used the
returned etag of blobStore.putBlob() to manually verify
against a client provided hash. That worked quite well for us. But since we are
hitting the 5GB limit of S3, we switched to the multipart() upload
that jclouds offers. But now, putBlob() returns someting like
<md5-hash>-<number> e.g. 90644a2d0c7b74483f8d2036f3e29fc5-2 that of course
fails with our validation.
I guess this is due to the fact, that each chunk is hashed separately and send
to S3. So there is no complete hash over the whole payload that could
be returned by putBlob() - is that correct?
During my research I stumbled across this:
https://github.com/jclouds/jclouds/commit/f2d897d9774c2c0225c199c7f2f46971637327d6
Now I'm wondering, what the contract of putBlob() is. Should it only return
valid etag/hashes otherwise return null?
I'm asking that, because otherwise, I would have to start parsing and
validating the returned value by myself and skip any
validation when it isn't a normal md5 hash. My guess is, that this is the hash
from the last transferred chunk plus
the chunk number?
Maybe someone can shed some light on this :).
Thanks
Veit