Por que o arquivo carregado no S3 tem o tipo de conteúdo application / octet-stream, a menos que eu nomeie o arquivo .html

Mesmo que eu defina o tipo de conteúdo como text / html, ele acaba como application / octet-stream no S3.

ByteArrayInputStream contentsAsStream = new ByteArrayInputStream(contentAsBytes);
ObjectMetadata md = new ObjectMetadata();
md.setContentLength(contentAsBytes.length);
md.setContentType("text/html");
s3.putObject(new PutObjectRequest(ARTIST_BUCKET_NAME, artistId, contentsAsStream, md));

Se, no entanto, eu nomear o arquivo para que ele acabe com .html

s3.putObject(new PutObjectRequest(ARTIST_BUCKET_NAME, artistId + ".html", contentsAsStream, md));

então funciona.

Meu objeto md está sendo ignorado? Como posso contornar isso programaticamente, pois com o tempo eu preciso fazer o upload de milhares de arquivos para que não possa simplesmente entrar na interface do S3 e corrigir manualmente o contentType.

questionAnswers(4)

yourAnswerToTheQuestion