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
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- 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 Cloud 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 Cloud 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 Cloud DNS, as instruções para adicionar registros de recurso podem ser encontradas na página Adicionar, modificar e excluir registros.
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
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Clique em add_boxCriar 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".
Linha de comando
Use o comando criar buckets:
gcloud storage buckets create gs://www.example.com
Se o comando estiver correto, ele retornará:
Creating gs://www.example.com/...
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Crie um arquivo JSON que atribua o nome do seu site à propriedade
name
:{ "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 $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b?project=my-static-website"
API XML
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.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 $(gcloud auth print-access-token)" \ -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
- No Console do Google Cloud, acesse a página Buckets 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.
Linha de comando
Use o comando gcloud storage cp
para copiar arquivos para o bucket.
Por exemplo, para copiar o arquivo index.html
do local atual
Desktop
:
gcloud storage cp Desktop/index.html gs://www.example.com
Se funcionar, a resposta será parecida com esta:
Completed files 1/1 | 164.3kiB/164.3kiB
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
No exemplo a seguir, é feito o upload de um objeto individual:
O exemplo a seguir faz upload de vários objetos simultaneamente:
No exemplo a seguir, todos os objetos com um prefixo comum são enviados simultaneamente:
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
No exemplo a seguir, é feito o upload de um objeto individual:
O exemplo a seguir faz upload de vários objetos simultaneamente:
No exemplo a seguir, todos os objetos com um prefixo comum são enviados simultaneamente:
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
No exemplo a seguir, é feito o upload de um objeto individual:
O exemplo a seguir faz upload de vários objetos simultaneamente:
No exemplo a seguir, todos os objetos com um prefixo comum são enviados simultaneamente:
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.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: $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/upload/storage/v1/b/www.example.com/o?uploadType=media&name=index.html"
API XML
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
(em inglês) para chamar a API XML com uma solicitação do objetoPUT
. No caso da página de índice de www.example.com:curl -X PUT --data-binary @index.html \ -H "Authorization: $(gcloud auth print-access-token)" \ -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
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome do bucket que você quer tornar público.
Selecione a guia Permissões na parte superior da página.
Se o painel Acesso público for Não público, clique no botão Remover a prevenção do acesso público e clique em Confirmar na caixa de diálogo exibida.
Clique no botão add_boxPermitir acesso.
A caixa de diálogo Adicionar participantes é exibida.
No campo Novos participantes, insira
allUsers
.No campo Selecionar uma função, selecione o submenu Cloud Storage e clique na opção Leitor de objetos do Storage.
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. Clique nesse ícone para ver o URL do objeto.
Linha de comando
Use o comando buckets add-iam-policy-binding
:
gcloud storage buckets add-iam-policy-binding gs://www.example.com --member=allUsers --role=roles/storage.objectViewer
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.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 dePUT
bucket:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
Em que:
JSON_FILE_NAME
é o caminho para o arquivo JSON criado na Etapa 2.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. Use o console do Google Cloud ou o gcloud storage
.
É 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
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, encontre o bucket que você criou.
Clique no menu flutuante "Bucket" (more_vert) associado ao bucket e selecione Editar configuração do 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.
Linha de comando
Use o comando buckets update
com as flags --web-main-page-suffix
e --web-error-page
:
gcloud storage buckets update gs://www.example.com --web-main-page-suffix=index.html --web-error-page=404.html
Se o comando estiver correto, ele retornará:
Updating gs://www.example.com/... Completed 1
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Crie um arquivo JSON que defina as propriedades
mainPageSuffix
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: $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/www.example.com"
API XML
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Crie um arquivo XML que defina os elementos
MainPageSuffix
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: $(gcloud auth print-access-token)" \ 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, você pode limpar os recursos que criou para que eles parem de usar a cota e gerar cobranças. Nas seções a seguir, você aprenderá a excluir e desativar esses recursos.
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:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
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 todas as opções de disponibilização na Web.
- Teste outros tutoriais do Google Cloud que usam o Cloud Storage.