AWS S3: should I use POST or PUT requests to upload a file?

Apart from the differences you noticed, when using POST, the response you get contains The object key name. This is useful if you upload multiple objects in parallel, to identify which upload succeeded or not in the callback.

Also for access control, you can use POST and PUT differently (e.g Not allowing object modification, while only allowing creation)