¿Por qué el archivo cargado en S3 tiene el tipo de contenido application / octet-stream a menos que nombre el archivo .html

Aunque configuré el tipo de contenido en text / html, termina como application / octet-stream en 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));

Sin embargo, si nombro el archivo para que termine con .html

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

entonces funciona

¿Se está ignorando mi objeto md? ¿Cómo puedo solucionar esto programáticamente ya que con el tiempo necesito cargar miles de archivos, por lo que no puedo simplemente ingresar a la interfaz de usuario S3 y corregir manualmente el tipo de contenido?

Respuestas a la pregunta(4)

Su respuesta a la pregunta