Hello goamz,
In so doing, I discovered a subtle bug in signing S3 requests. The library sorts headers by the full "key:value1,value2,..." string before signing, but the API specifies that the strings should be sorted by key only. This manifests when one header is a prefix of another, e.g. "x-amz-copy-source" and "x-amz-copy-source-range".
I've fixed this as well. I'd love to commit all this back, and just need to know where & how to submit a patch. :)
Thanks!
Harry