This is covered in the github issue https://github.com/boto/boto3/issues/934
For uploading an object, you should use generate_presigned_post. There are several parameters that cannot be embedded within the url, and those are returned to you by that method.