Neste tutorial, descrevemos como configurar um bucket do Cloud Storage para hospedar um site estático de um domínio seu. As páginas da Web estáticas podem conter tecnologias de cliente, como HTML, CSS e JavaScript. Elas não podem conter conteúdo dinâmico (por exemplo, scripts do servidor) como PHP.
Neste tutorial, você verá como veicular conteúdo por HTTP. Para ver um tutorial que usa HTTPS, consulte Como hospedar um site estático.
Para exemplos e dicas sobre páginas da Web estáticas, incluindo como hospedar recursos estáticos para um site dinâmico, consulte Página do site estático.
Objetivos
Neste tutorial, você aprenderá a:- apontar seu domínio para o Cloud Storage usando um registro
CNAME
; - criar um bucket vinculado ao seu domínio;
- fazer o upload de arquivos do seu site e compartilhá-los;
- testar o site.
Custos
Neste tutorial, usamos o seguinte componente faturável do Google Cloud:
- Cloud Storage
Consulte as dicas na seção Como monitorar cobranças de armazenamento para mais detalhes sobre as cobranças ligadas à hospedagem de um site estático. Consulte a página Preços para mais detalhes sobre os custos do Cloud Storage.
Antes de começar
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.
- Tenha um domínio próprio ou que você gerencia. Se você não tiver um domínio,
há muitos serviços pelos quais você pode registrar um novo domínio, como Google Domains.
Este tutorial usa o domínio
example.com
. - Confirme que
você é proprietário ou administrador do domínio que será usado. Certifique-se de estar
verificando o domínio de nível mais alto, como
example.com
, e não um subdomínio, comowww.example.com
.Observação: se você é proprietário do domínio que está associando a um bucket, talvez já tenha realizado esta etapa anteriormente. Se você comprou seu domínio pelo Google Domains, a confirmação será automática.
Como conectar seu domínio ao Cloud Storage
Para conectar seu domínio ao Cloud Storage, crie um registro de CNAME
por meio do serviço de registro de domínio. Um registro CNAME
é um tipo de registro
DNS. Ele direciona o tráfego que solicita um URL do seu domínio para os recursos
que você quer disponibilizar. Nesse caso, objetos nos seus buckets do Cloud Storage.
Para www.example.com
, o registro CNAME
pode conter as seguintes
informações:
NAME TYPE DATA www CNAME c.storage.googleapis.com.
Para ver mais informações sobre redirecionamentos de CNAME
, consulte a URI para alias de CNAME
.
Para conectar seu domínio ao Cloud Storage:
Crie um registro
CNAME
que aponta parac.storage.googleapis.com.
.Seu serviço de registro precisa permitir que você administre seu domínio, inclusive para adicionar um registro
CNAME
. Por exemplo, se você usa o Google Domains, consulte as instruções sobre como adicionar um registro na página Ajuda do Google Domains.
Como criar um bucket
Crie um bucket com o nome que corresponde ao CNAME
criado para o domínio.
Por exemplo, se você adicionou um registro CNAME
que aponta do subdomínio www
de example.com
para c.storage.googleapis.com.
, crie um bucket com o nome "www.example.com. .
Para criar um bucket:
Console
- Abra o navegador do Cloud Storage no Console do Google Cloud.
Abrir o navegador do Cloud Storage Clique em Criar bucket para abrir o formulário de criação do bucket.
Insira as informações do bucket e clique em Continuar para concluir cada etapa:
O Nome do bucket, que corresponde ao nome do host associado ao registro
CNAME
.Selecione o Tipo de local e o Local do seu bucket. Por exemplo, Região e us-east1.
Selecione Armazenamento padrão para Classe de armazenamento.
Selecione Uniforme para Controle de acesso.
Clique em Criar.
Se funcionar, você será direcionado para a página do bucket com o texto "Não há objetos ativos neste bucket".
gsutil
Use o comando gsutil mb
:
gsutil mb gs://www.example.com
Se funcionar, o comando retornará:
Creating gs://www.example.com/...
Amostras de código
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage para PHP.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.
APIs REST
API JSON
- Consiga um token de acesso de autorização do OAuth 2.0 Playground (em inglês). Configure o Playground para usar suas credenciais do OAuth.
Crie um arquivo
.json
que atribua o nome do seu site à propriedadename
:{ "name": "www.example.com" }
Use
cURL
para chamar a API JSON. No caso de www.example.com:curl -X POST --data-binary @website-bucket-name.json \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b?project=my-static-website"
API XML
- Consiga um token de acesso de autorização do OAuth 2.0 Playground (em inglês). Configure o Playground para usar suas credenciais do OAuth.
Use
cURL
(em inglês) para chamar a API XML e criar um bucket com o nome do seu site. No caso de www.example.com:curl -X PUT \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ -H "x-goog-project-id: my-static-website" \ "https://storage.googleapis.com/www.example.com"
Como fazer o upload dos arquivos do seu site
Para adicionar ao bucket os arquivos que você quer que sejam disponibilizados pelo seu site:
Console
- Abra o navegador do Cloud Storage no Console do Google Cloud.
Abrir o navegador do Cloud Storage Na lista de buckets, clique no nome do bucket que você criou.
Clique no botão Fazer o upload dos arquivos na guia Objetos
Na caixa de diálogo de arquivos, procure e selecione o arquivo pretendido.
Após a conclusão do upload, você verá o nome do arquivo com as informações do arquivo exibidas no bucket.
gsutil
Use o comando gsutil cp
para copiar arquivos para o bucket. Por exemplo, para
copiar o arquivo index.html
do local atual Desktop
:
gsutil cp Desktop/index.html gs://www.example.com
Se funcionar, o comando retornará:
Copying file://Desktop/index.html [Content-Type=text/html]... Uploading gs://www.example.com/index.html: 0 B/2.58 KiB Uploading gs://www.example.com/index.html: 2.58 KiB/2.58 KiB
Amostras de código
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.
Para mais informações sobre como fazer upload de um stream, string ou buffer, consulte File.save().PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage para PHP.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.
Use o método Blob.upload_from_file(), Blob.upload_from_filename() ou Blob.upload_from_string() para fazer upload de um objeto.Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.
APIs REST
API JSON
- Consiga um token de acesso de autorização do OAuth 2.0 Playground (em inglês). Configure o Playground para usar suas credenciais do OAuth.
Use
cURL
(em inglês) para chamar a API JSON com uma solicitação do objetoPOST
. No caso da página de índice de www.example.com:curl -X POST --data-binary @index.html \ -H "Content-Type: text/html" \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ "https://storage.googleapis.com/upload/storage/v1/b/www.example.com/o?uploadType=media&name=index.html"
API XML
- Consiga um token de acesso de autorização do OAuth 2.0 Playground (em inglês). Configure o Playground para usar suas credenciais do OAuth.
Use
cURL
(em inglês) para chamar a API XML com uma solicitação do objetoPUT
. Para a página de índice de www.example.com:curl -X PUT --data-binary @index.html \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ -H "Content-Type: text/html" \ "https://storage.googleapis.com/www.example.com/index.html"
Como compartilhar arquivos
Para ativar a leitura de todos os objetos em um bucket para todos os usuários da Internet pública, siga estas etapas:
Console
- Abra o navegador do Cloud Storage no Console do Google Cloud.
Abrir o navegador do Cloud Storage Na lista de buckets, clique no nome daquele que você quer tornar público.
Selecione a guia Permissões na parte superior da página.
Clique no botão Adicionar membros.
A caixa de diálogo Adicionar membros é exibida.
No campo Novos membros, insira
allUsers
.No campo Selecionar uma função, selecione o submenu Cloud Storage e clique na opção Visualizador do objeto de armazenamento.
Clique em Salvar.
Clique em Permitir acesso público.
Depois que o intervalo for compartilhado publicamente, aparecerá um ícone de link para cada objeto na coluna de acesso público. Você pode clicar nesse ícone para ver o URL do objeto.
gsutil
Use o comando gsutil iam ch
:
gsutil iam ch allUsers:objectViewer gs://www.example.com
Amostras de código
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.
APIs REST
API JSON
- Consiga um token de acesso de autorização do OAuth 2.0 Playground (em inglês). Configure o Playground para usar suas credenciais do OAuth.
Crie um arquivo .json com as informações a seguir:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Use
cURL
para chamar a API JSON com uma solicitação de bucketPUT
:curl -X PUT --data-binary @JSON_FILE_NAME.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
Em que:
JSON_FILE_NAME
é o nome do arquivo que você criou na etapa 2;OAUTH2_TOKEN
é o token de acesso criado na etapa 1;BUCKET_NAME
é o nome do bucket que contém os objetos que você quer tornar públicos. Por exemplo,my-bucket
.
API XML
Não é possível ativar a leitura pública de todos os objetos em um bucket com a API XML. No lugar dela, use a gsutil ou a API JSON.
É possível tornar grupos de objetos no seu bucket acessíveis publicamente. No entanto, tornar todos os arquivos no seu bucket acessíveis tende a ser mais fácil e rápido.
Os visitantes recebem um código de resposta http 403
ao solicitar o URL de um
arquivo não público ou inexistente. Consulte a próxima seção para obter informações sobre como
adicionar uma página de erro que usa um http 404
código de resposta.
Recomendado: como atribuir páginas especiais
Você pode atribuir um sufixo de página de índice, que é controlado pela propriedade MainPageSuffix
e por uma página de erro personalizada, que é controlada pela
propriedade NotFoundPage
. Atribuir um desses é opcional, mas sem uma página de índice, nada é
exibido quando os usuários acessam seu site de nível superior, por
exemplo, http://www.example.com
. Para mais informações, consulte Exemplos de configuração de sites.
No exemplo a seguir, o MainPageSuffix
está definido como index.html
e
NotFoundPage
está definido como 404.html
:
Console
- Abra o navegador do Cloud Storage no Console do Google Cloud.
Abrir o navegador do Cloud Storage Na lista de buckets, encontre o bucket que você criou.
Clique no menu flutuante (
) associado ao bucket e selecione Editar configuração de site.
Na caixa de diálogo de configuração do site, especifique a página principal e a página de erro.
Clique em Salvar.
gsutil
Use o comando gsutil web set
para definir a propriedade de MainPageSuffix
com a sinalização de -m
e NotFoundPage
com a sinalização de -e
:
gsutil web set -m index.html -e 404.html gs://www.example.com
Se funcionar, o comando retornará:
Setting website config on gs://www.example.com/...
Amostras de código
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.
APIs REST
API JSON
- Consiga um token de acesso de autorização do OAuth 2.0 Playground (em inglês). Configure o Playground para usar suas credenciais do OAuth.
Crie um arquivo
.json
que defina as propriedades demainPageSuffix
enotFoundPage
em um objetowebsite
para as páginas desejadas:{ "website":{ "mainPageSuffix": "index.html", "notFoundPage": "404.html" } }
Use
cURL
para chamar a API JSON com uma solicitação de bucketPATCH
. No caso de www.example.com:curl -X PATCH --data-binary @web-config.json \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/www.example.com"
API XML
- Consiga um token de acesso de autorização do OAuth 2.0 Playground (em inglês). Configure o Playground para usar suas credenciais do OAuth.
Crie um arquivo
.xml
que defina os elementos deMainPageSuffix
eNotFoundPage
em um elementoWebsiteConfiguration
para as páginas desejadas:<WebsiteConfiguration> <MainPageSuffix>index.html</MainPageSuffix> <NotFoundPage>404.html</NotFoundPage> </WebsiteConfiguration>
Use
cURL
(em inglês) para chamar a API XML com uma solicitação do bucketPUT
e o parâmetro de string de consultawebsiteConfig
. No caso de www.example.com:curl -X PUT --data-binary @web-config.xml \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ https://storage.googleapis.com/www.example.com?websiteConfig
Como testar o site
Solicite o nome do domínio em um navegador para verificar se o conteúdo é disponibilizado pelo
bucket. Você pode fazer isso com um caminho para um objeto ou apenas com o nome
de domínio, se definir a propriedade de MainPageSuffix
.
Por exemplo, se você tiver um objeto denominado test.html
armazenado em um bucket denominado www.example.com
, verifique se ele está acessível indo para www.example.com/test.html
no seu navegador.
Limpar
Depois de concluir o tutorial Hospedagem de um site estático, limpe os recursos criados no Google Cloud para que eles não ocupem cota, e eles não serão cobrados no futuro. Veja como excluir e desativar esses recursos nas seções a seguir.
Como excluir o projeto
O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.
Para excluir o projeto:
- No Console do Cloud, acesse a página Gerenciar recursos:
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
Exclusão do bucket
Caso não queira excluir o projeto inteiro, exclua o bucket usado para hospedar seu site:
Console
- Abra o navegador do Cloud Storage no Console do Google Cloud.
Abra o navegador do Cloud Storage Marque a caixa de seleção associada a
www.example.com
.Clique em Excluir.
Na janela de sobreposição que aparece, clique em Excluir e confirme a exclusão do bucket e do respectivo conteúdo.
gsutil
Use o comando gsutil rm
com a sinalização de -r
para excluir
o bucket e o conteúdo de dentro dele:
gsutil rm -r gs://www.example.com
A resposta terá esta aparência:
Removing gs://www.example.com/...
Amostras de código
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage para PHP.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.
APIs REST
API JSON
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
Use
cURL
para chamar a API JSON com uma solicitação de bucketDELETE
:curl -X DELETE \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ "https://storage.googleapis.com/storage/v1/b/www.example.com"
Se funcionar, a resposta conterá o código de status 204.
API XML
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
Use
cURL
para chamar a API XML com uma solicitação de bucketDELETE
:curl -X DELETE \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ "https://storage.googleapis.com/www.example.com"
A seguir
- Veja exemplos e dicas para usar buckets para hospedar um site estático.
- Visite a seção de solução de problemas para hospedar um site estático.
- Saiba mais sobre hospedagem de recursos estáticos em um site dinâmico.
- Saiba mais sobre o horário comercial do Cloud Storage para hospedar um site estático.
- Saiba mais sobre todas as opções de disponibilização na Web.
- Teste outros tutoriais do Google Cloud que usam o Cloud Storage.