In the unit tests I wrote to handle _sign_string's three use cases (private key file object, private key file name, private key string), the private key file object test was failing because no data was being read from the file object. The seek(0) fixed the problem. I think the test may have been flawed, so I'll take a closer look before submitting the unit tests for this.

In hindsight, the seek will probably break on file-like objects that don't support seek, so it's probably best to remove it. Any preparation of the passed-in private_key_file can/should be done before the call to create_signed_url.

Unless there are objections, I'll go ahead and pull out the seek(0) here.