Este tutorial descreve como configurar um contentor do Cloud Storage para alojar um Website estático para um domínio que lhe pertence. As páginas Web estáticas podem conter tecnologias do lado do cliente, como HTML, CSS e JavaScript. Não podem conter conteúdo dinâmico, como scripts do lado do servidor, como PHP.
Este tutorial mostra como publicar conteúdo através de HTTP. Para um tutorial que usa HTTPS, consulte Alojamento de um Website estático.
Para ver exemplos e sugestões sobre páginas Web estáticas, incluindo como alojar recursos estáticos para um Website dinâmico, consulte a página do Website estático.
Associar o seu domínio ao Cloud Storage
Para associar o seu domínio ao Cloud Storage, crie um registo CNAME através do seu serviço de registo de domínios. Um registo CNAME é um tipo de registo de DNS. Direciona o tráfego que pede um URL do seu domínio para os recursos que quer publicar, neste caso, objetos nos seus contentores do Cloud Storage.
Para www.example.com, o registo CNAME pode conter as seguintes informações:
NAME TYPE DATA www CNAME c.storage.googleapis.com.
Para mais informações sobre os redirecionamentos CNAME, consulte o artigo URI para a criação de alias de CNAME.
Para associar o seu domínio ao Cloud Storage:
Crie um registo
CNAMEque aponte parac.storage.googleapis.com..O seu serviço de registo de domínio deve ter uma forma de administrar o seu domínio, incluindo a adição de um registo
CNAME. Por exemplo, se usar o Cloud DNS, pode encontrar instruções para adicionar registos de recursos na página Adicionar, modificar e eliminar registos.
Criar um contentor
Crie um contentor cujo nome corresponda ao CNAME que criou para o seu domínio.
Por exemplo, se adicionou um registo CNAME que aponta do subdomínio www de example.com para c.storage.googleapis.com., o comando da CLI do Google Cloud para criar um contentor com o nome www.example.com seria semelhante ao seguinte:
gcloud storage buckets create gs://www.example.com --location=US
Para ver instruções completas sobre como criar grupos com diferentes ferramentas, consulte o artigo Crie grupos.
Carregar os ficheiros do seu site
Para adicionar ao seu contentor os ficheiros que quer que o seu Website publique:
Consola
- Na Google Cloud consola, aceda à página Recipientes do Cloud Storage.
Na lista de contentores, clique no nome do contentor que criou.
Clique no botão Carregar ficheiros no separador Objetos.
Na caixa de diálogo de ficheiros, procure o ficheiro pretendido e selecione-o.
Após a conclusão do carregamento, deve ver o nome do ficheiro, juntamente com as informações do ficheiro, apresentado no contentor.
Linha de comandos
Use o comando gcloud storage cp para copiar ficheiros para o seu contentor.
Por exemplo, para copiar o ficheiro index.html da respetiva localização atual
Desktop:
gcloud storage cp Desktop/index.html gs://www.example.com
Se for bem-sucedido, a resposta é semelhante ao exemplo seguinte:
Completed files 1/1 | 164.3kiB/164.3kiB
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
O exemplo seguinte carrega um objeto individual:
O exemplo seguinte carrega vários objetos em simultâneo:
O exemplo seguinte carrega todos os objetos com um prefixo comum em simultâneo:
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
O exemplo seguinte carrega um objeto individual:
O exemplo seguinte carrega vários objetos em simultâneo:
O exemplo seguinte carrega todos os objetos com um prefixo comum em simultâneo:
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
O exemplo seguinte carrega um objeto individual:
O exemplo seguinte carrega vários objetos em simultâneo:
O exemplo seguinte carrega todos os objetos com um prefixo comum em simultâneo:
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization.Use
cURLpara chamar a API JSON com um pedido dePOSTobjeto. Para a 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 CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization.Use
cURLpara chamar a API XML com um pedido dePUTobjeto. Para a 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"
Partilhar os seus ficheiros
Para tornar todos os objetos num contentor legíveis para todas as pessoas na Internet pública:
Consola
- Na Google Cloud consola, aceda à página Recipientes do Cloud Storage.
Na lista de contentores, clique no nome do contentor que quer tornar público.
Selecione o separador Permissões junto à parte superior da página.
Se o painel Acesso público indicar Não público, clique no botão com a etiqueta Remover prevenção de acesso público e clique em Confirmar na caixa de diálogo apresentada.
Clique no botão add_box Conceder acesso.
É apresentada a caixa de diálogo Adicionar responsáveis.
No campo Novos principais, introduza
allUsers.No menu pendente Selecionar uma função, selecione o submenu Cloud Storage e clique na opção Visualizador de objetos do Storage.
Clique em Guardar.
Clique em Permitir acesso público.
Depois de partilhados publicamente, é apresentado um ícone de link para cada objeto na coluna acesso público. Pode clicar neste ícone para obter o URL do objeto.
Linha de comandos
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 cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization.Crie um ficheiro JSON que contenha as seguintes informações:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Use
cURLpara chamar a API JSON com um pedido dePUTBucket: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"
Onde:
JSON_FILE_NAMEé o caminho para o ficheiro JSON que criou no passo 2.BUCKET_NAMEé o nome do contentor cujos objetos quer tornar públicos. Por exemplo,my-bucket.
API XML
Tornar todos os objetos num contentor legíveis publicamente não é suportado pela API XML. Em alternativa, use a consola Google Cloud ou gcloud storage.
Em alternativa, se quiser, pode tornar partes do seu contentor acessíveis publicamente.
Os visitantes recebem um código de resposta http 403 quando pedem o URL de um ficheiro não público ou inexistente. Consulte a secção seguinte para ver informações sobre como
adicionar uma página de erro que use um código de resposta http 404.
Recomendado: atribuir páginas especializadas
Pode atribuir um sufixo de página de índice, que é controlado pela propriedade MainPageSuffix
e uma página de erro personalizada, que é controlada pela propriedade NotFoundPage. A atribuição de qualquer um dos elementos é opcional, mas, sem uma página de índice, não é apresentado nada quando os utilizadores acedem ao seu site de nível superior, por exemplo, http://www.example.com. Para mais informações, consulte os Exemplos de configuração de Websites.
No exemplo seguinte, MainPageSuffix está definido como index.html e
NotFoundPage está definido como 404.html:
Consola
- Na Google Cloud consola, aceda à página Recipientes do Cloud Storage.
Na lista de contentores, encontre o contentor que criou.
Clique no menu Overflow do contentor (more_vert) associado ao contentor e selecione Editar configuração do Website.
Na caixa de diálogo de configuração do Website, especifique a página principal e a página de erro.
Clique em Guardar.
Linha de comandos
Use o comando buckets update com os indicadores --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 for bem-sucedido, o comando devolve:
Updating gs://www.example.com/... Completed 1
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization.Crie um ficheiro JSON que defina as propriedades
mainPageSuffixenotFoundPagenum objetowebsitepara as páginas pretendidas:{ "website":{ "mainPageSuffix": "index.html", "notFoundPage": "404.html" } }
Use
cURLpara chamar a API JSON com um pedido dePATCHcontentor. Para 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 CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization.Crie um ficheiro XML que defina os elementos
MainPageSuffixeNotFoundPagenum elementoWebsiteConfigurationpara as páginas pretendidas:<WebsiteConfiguration> <MainPageSuffix>index.html</MainPageSuffix> <NotFoundPage>404.html</NotFoundPage> </WebsiteConfiguration>
Use
cURLpara chamar a API XML com um pedido dePUTcontentor e um parâmetro de string de consultawebsiteConfig. Para 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
Testar o Website
Valide se o conteúdo é publicado a partir do contentor pedindo o nome do domínio num navegador. Pode fazê-lo com um caminho para um objeto ou apenas com o nome do domínio,
se definir a propriedade MainPageSuffix.
Por exemplo, se tiver um objeto denominado test.html armazenado num contentor denominado www.example.com, verifique se está acessível acedendo a www.example.com/test.html no seu navegador.