Existe uma maneira de ter a funcionalidade index.html com conteúdo hospedado no S3?
-
09-06-2019 - |
Pergunta
Existe uma maneira de tornar o S3 padrão para uma página index.html?Por exemplo.:Minha listagem de objetos de bucket:
/index.html
/favicon.ico
/images/logo.gif
Uma chamada para www.exemplo.com/index.html funciona bem!Mas se alguém ligasse www.exemplo.com/ obteríamos um documento XML de listagem de objetos 403 ou REST, dependendo de como a ACL em nível de bucket foi configurada.
Então, a pergunta:Existe uma maneira de ter a funcionalidade index.html com conteúdo hospedado no S3?
Solução
Amazon S3 agora oferece suporte Documentos de índice
O documento de índice para um balde pode ser definido como algo como index.html
.Ao acessar a raiz do site ou um subdiretório contendo um documento com esse nome esse documento é retornado.
É extremamente fácil de fazer usando o aws cli:
aws s3 website $MY_BUCKET_NAME --index-document index.html
Você pode definir o documento de índice no Console de gerenciamento da AWS:
Outras dicas
Para as pessoas que ainda lutam contra isso após 3 anos, deixe-me acrescentar algumas informações importantes:
O URL do seu site (e para o qual você deve apontar seu DNS) não é
<bucket_name>.s3-us-west-2.amazonaws.com
, mas
<bucket_name>.s3-website-us-west-2.amazonaws.com
.
Se você usar o primeiro, não funcionará como esperado, não importa o quanto você configure o Documento de índice.
Para um exemplo específico, considere:
- http://www-example-com.s3.amazonaws.com/index.html funciona.
- http://www-example-com.s3.amazonaws.com/ falha com
AccessDenied
. - http://www-example-com.s3-website-us-west-2.amazonaws.com/ funciona!
Para obter o endereço verdadeiro do seu site, vá para o seu Console de gerenciamento S3, selecione o bucket de destino e, em seguida, Properties
, então Static Website Hosting
.Ele mostrará o URL do site que funcionará.
Você pode resolver isso facilmente pelo Amazon CloudFront link.No Amazon CloudFront você pode modificar o objeto raiz.Você pode baixar o gerenciador aqui:m1.mycloudbuddy.com/downloads.html.
Já faz muito tempo que essa pergunta está sendo feita e o Amazon S3 está mudando sua interface.Gostaria de responder com capturas de tela atualizadas.
Precisamos habilitar 'hospedagem estática na web' para que o S3 sirva como hospedagem na web.- Vá para Propriedades -> Clique em Hospedagem estática da Web -> Selecione 'Use este balde para hospedar um site' - Digite o documento do índice (index.html por padrão), documento de erro e regras de redirecionamento, se houver.
Como respondido em https://stackoverflow.com/a/24377823/3086531, o link de hospedagem seria
Eu sugeriria a leitura este tópico de 2006 (na conexão de desenvolvedores de serviços web da Amazon).Parece que não há solução fácil para isso.
Sim.usar o AWS Cloudfront permite atribuir um arquivo padrão.
você pode fazer isso usando dns webforwards e cloaking.basta avançar para o caminho completo do index.html
www.example.com encaminha para http://www.example.com.s3.amazonaws.com e certifique-se de ocultar a saída.