If you receive the following error when trying to store an object in Amazon S3:
<Error> <Code>AccessDenied</Code> <Message>Invalid according to Policy: Extra input fields: content-type</Message> <RequestId>SomeCrazyString</RequestId> <HostId>AnotherCrazyString</HostId> </Error>
It's because the policy used to generate the pre-signed POST request did not have content-type as one of the permissible fields. Set it like so:
[["starts-with", "$Content-Type", ""]]
An empty string tells S3 to allow any content-type, but you can certainly be more specific.