Anche se imposto il tipo di contenuto in text/html finisce come application/octet-stream su S3.Perché il file caricato su S3 ha il tipo di contenuto application/octet-stream a meno che non denomini il file .html
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 però ho un nome al file in modo che finisce con .html
s3.putObject(new PutObjectRequest(ARTIST_BUCKET_NAME, artistId + ".html", contentsAsStream, md));
allora funziona.
Il mio oggetto md viene semplicemente ignorato? Come posso aggirare questo a livello di programmazione poiché nel tempo ho bisogno di caricare migliaia di file, quindi non posso semplicemente andare nell'interfaccia utente S3 e correggere manualmente il contentType.
Come si controlla il tipo di contenuto? Nell'interfaccia utente di AWS S3 o tramite API? Se tramite API puoi incollare il codice. Utilizzi l'ultima versione di AWS SDK? Se è così puoi provare con uno. – Jakozaur
Controllo il tipo di contenuto aprendo guardando il contentype in un browser all'interno della console S3 –
Im usando aws versione 1.9.6 che ritenevo essere l'ultima –