2011-05-02 10 views
5

Mi chiedevo se è possibile creare le mie pagine di errore per i miei bucket S3. Ho attivato CloudFront e sto utilizzando il mio CNAME per assegnare l'S3 a un sottodominio per il mio sito web. Questo mi aiuta a creare collegamenti ordinati che fanno riferimento al mio nome di dominio.Crea la mia pagina di errore personale per Amazon S3

Quando qualcuno tenta di accedere a un file che è stato forse eliminato o il collegamento non è del tutto corretto, ottiene la pagina di errore S3 XML che è brutta e non molto utile per l'utente.

C'è un modo per ignorare queste pagine di errore in modo da poter visualizzare invece una pagina HTML utile?

risposta

5

Se si configura il bucket come "sito Web", è possibile creare pagine di errore personalizzate.

Per ulteriori dettagli, vedere Amazon announcement di questa funzione e AWS developer guide.

Ci sono tuttavia alcuni avvertimenti con questo approccio, uno dei principali è che i tuoi oggetti devono essere disponibili al pubblico.

Funziona anche con Cloudfront, ma si applicano le stesse limitazioni di accesso pubblico. Vedi https://forums.aws.amazon.com/ann.jspa?annID=921.

Se si vuole, si può provare questi fuori subito configurando l'Amazon S3 secchio come un sito web e fare il nuova Amazon S3 sito endpoint un'origine personalizzato per la vostra distribuzione CloudFront . Alcune note quando fai questo . Innanzitutto, è necessario impostare il criterio del protocollo di origine personalizzato su "solo http." In secondo luogo, sarà necessario utilizzare uno strumento che supporti l'origine personalizzata di CloudFront - la console di gestione di AWS non offre a questo punto questo caratteristica. Infine, quando si usa la funzione del sito Web statico di Amazon S3 , tutto il contenuto del bucket S3 deve essere accessibile al pubblico, quindi non è possibile utilizzare la funzione di contenuto privato di CloudFront con quel bucket. Se si desidera utilizzare il contenuto privato con S3, è necessario utilizzare l'endpoint S3 REST (ad es. S3.amazonaws.com).