Hack on the url encode to make sure s3 upload will go though

The problem of upload failure is when there's a '+' char inside the signature, it's going to be replaced by an empty space, thus fails signature verification. + sign would be encoded to '%2B'. My code is a little hacky though, a better encode method should be replaced.