Esiste un modo per avere la funzionalità index.html con il contenuto ospitato su S3?
-
09-06-2019 - |
Domanda
Esiste un modo per impostare S3 come predefinita su una pagina index.html?Per esempio.:L'elenco dei miei oggetti bucket:
/index.html
/favicon.ico
/images/logo.gif
Una chiamata a www.esempio.com/indice.html funziona alla grande!Ma se qualcuno dovesse chiamare www.esempio.com/ otterremmo un documento XML con elenco di oggetti 403 o REST a seconda di come è stata configurata l'ACL a livello di bucket.
Quindi, la domanda:Esiste un modo per avere la funzionalità index.html con il contenuto ospitato su S3?
Soluzione
Amazon S3 ora supporta Indice dei documenti
IL documento indice for a bucket può essere impostato su qualcosa di simile index.html
.Quando si accede alla radice del sito o ad una sottodirectory contenente un documento con quel nome, viene restituito quel documento.
È estremamente semplice da eseguire utilizzando aws cli:
aws s3 website $MY_BUCKET_NAME --index-document index.html
È possibile impostare il documento indice dalla Console di gestione AWS:
Altri suggerimenti
Per le persone che ancora lottano contro questo problema dopo 3 anni, vorrei aggiungere alcune informazioni importanti:
L'URL del tuo sito web (e al quale devi puntare il tuo DNS) non lo è
<bucket_name>.s3-us-west-2.amazonaws.com
, Ma
<bucket_name>.s3-website-us-west-2.amazonaws.com
.
Se usi il primo, non funzionerà come previsto, non importa quanto configuri il file Documento indice.
Per un esempio specifico, considerare:
- http://www-example-com.s3.amazonaws.com/index.html lavori.
- http://www-esempio-com.s3.amazonaws.com/ fallisce con
AccessDenied
. - http://www-example-com.s3-website-us-west-2.amazonaws.com/ lavori!
Per ottenere il vero indirizzo del tuo sito web, vai al tuo Console di gestione S3, seleziona il bucket di destinazione, quindi Properties
, Poi Static Website Hosting
.Mostrerà l'URL del sito Web che funzionerà.
Puoi risolverlo facilmente con Amazon CloudFront collegamento.Su Amazon CloudFront puoi modificare l'oggetto root.Puoi scaricare il gestore qui:m1.mycloudbuddy.com/downloads.html.
Dato che è passato molto tempo, questa domanda è stata posta e Amazon S3 ha cambiato la propria interfaccia.Vorrei rispondere con screenshot aggiornati.
Dobbiamo abilitare il "web hosting statico" affinché S3 funga da web hosting.- Vai su Proprietà -> Fai clic su Web Hosting statico -> Seleziona 'Usa questo bucket per ospitare un sito Web' - Immettere il documento indice (index.html per impostazione predefinita), il documento di errore e le regole di reindirizzamento, se presenti.
Come risposto in https://stackoverflow.com/a/24377823/3086531, il collegamento al web hosting sarebbe
Suggerirei la lettura questo filo dal 2006 (connessione agli sviluppatori di servizi web di Amazon).Sembra che non ci sia una soluzione semplice a questo.
SÌ.l'utilizzo di AWS Cloudfront ti consente di assegnare un file predefinito.
puoi farlo utilizzando dns webforwards e cloaking.inoltra semplicemente il percorso completo di index.html
www.example.com inoltra a http://www.example.com.s3.amazonaws.com e assicurati di nascondere l'output.