I am not even sure this will work:

Everything seems to indicate I am computing the md5 in the right way,
several search results suggest most of the times this error is due to
people doing their own computation instead of relying on the tested and
true ``boto.utils.compute_md5()``, but I am actually doing that. some
other people have the same issue when reading the file beforehand and
then computing the md5, this moves the cursor to the end (or whatever
position) of the file and making the md5 not work. So for the sake of
ruling this out, here it is.
Merge pull request #3 from urbanairship/do-seek

I am not even sure this will work: