With InputStreams, Amazon's Java libraries aren't able to generate the content length or content type, and we get warnings like this:
WARN AmazonS3Client - No content length specified for stream data. Stream contents will be buffered in memory and could result in out of memory errors.
Not including the content type means S3 will be serving the uploaded file as generic binary.
Since there are already Camel headers for this, I'm proposing that they be used when sending messages to S3. I can write a patch for this if it would help.