Como solucionar problemas

401: não autorizado

Problema: as solicitações para um bucket público diretamente ou por meio do Cloud CDN falham com uma resposta HTTP 401: Unauthorized e Authentication Required.

Solução: verifique se o cliente ou qualquer proxy intermediário está adicionando um cabeçalho Authorization às solicitações ao Cloud Storage. Qualquer solicitação com um cabeçalho Authorization, ainda que vazia, é validada como se fosse uma tentativa de autenticação.

403: conta desativada

Problema: tentei criar um bucket, mas recebi um erro 403 Account Disabled.

Solução: esse erro indica que você ainda não ativou o faturamento do projeto associado. Para ver as etapas de ativação do faturamento, consulte Ativar o faturamento para um projeto.

Se o faturamento estiver ativado e você continuar recebendo essa mensagem de erro, entre em contato com o suporte informando o ID do projeto e uma descrição do problema.

403: acesso negado

Problema: tentei listar os objetos no bucket, mas recebi um erro 403 Access Denied e/ou uma mensagem semelhante a Anonymous caller does not have storage.objects.list access.

Solução: verifique se suas credenciais estão corretas. Por exemplo, se você estiver usando a ferramenta gsutil, verifique se as credenciais armazenadas no arquivo .boto estão corretas. Além disso, confirme se a gsutil está usando o arquivo .boto que você espera. Fala isso com o comando gsutil version -l e verificando a entrada config path(s).

Supondo que você esteja usando as credenciais corretas, suas solicitações estão sendo roteadas por meio de um proxy, usando HTTP (em vez de HTTPS)? Em caso afirmativo, verifique se o proxy está configurado para remover o cabeçalho Authorization de tais solicitações. Se for o caso, verifique se você está usando HTTPS em vez de HTTP nas solicitações.

409: Conflito

Problema: tentei criar um bucket, mas recebi o seguinte erro:

409 Conflict. Sorry, that name is not available. Please try a different one.

Solução: o nome do bucket que você tentou usar (por exemplo, gs://cats ou gs://dogs) já está em uso. O Cloud Storage tem um namespace global, portanto, não é possível nomear um bucket com o mesmo nome de um atual. Escolha um nome que não esteja sendo usado.

Servidores proxy

Problema: estou me conectando por meio de um servidor proxy, o que preciso fazer?

Solução: para acessar o Cloud Storage por meio de um servidor proxy, permita o acesso a estes domínios:

  • accounts.google.com para criar tokens de autenticação OAuth2 por meio de gsutil config
  • oauth2.googleapis.com para realizar trocas de token OAuth2
  • *.googleapis.com para solicitações de armazenamento

Se o servidor proxy ou a política de segurança não for compatível com a lista de permissões por domínio e, em vez disso, exigir a lista de permissões por bloqueio de rede IP, recomendamos que você configure o servidor proxy para todos os intervalos de endereços IP do Google. É possível encontrar os intervalos de endereços consultando os dados WHOIS no site da ARIN (em inglês). Como prática recomendada, analise periodicamente suas configurações de proxy para garantir que elas correspondam aos endereços IP do Google.

Não recomendamos configurar seu proxy com endereços IP individuais que você recebe de consultas únicas de oauth2.googleapis.com e storage.googleapis.com. Como os serviços do Google são expostos por meio de nomes DNS que mapeiam um grande número de endereços IP que podem mudar com o tempo, configurar seu proxy com base em uma consulta única pode levar a falhas na conexão com o Cloud Storage.

Se suas solicitações estiverem sendo roteadas por um servidor proxy, talvez seja necessário falar com o administrador da rede para garantir que o cabeçalho Authorization que contém suas credenciais não seja removido pelo proxy. Sem o cabeçalho Authorization, suas solicitações serão rejeitadas e você receberá uma erro MissingSecurityHeader.

gsutil stat

Problema: tentei usar o comando gsutil stat para exibir o status do objeto de um subdiretório e recebi um erro.

Solução: o Cloud Storage usa um namespace simples para armazenar objetos em buckets. É possível usar barras (“/”) em nomes de objetos para parecer que eles estão em uma estrutura hierárquica, mas o comando gsutil stat trata uma barra à direita como parte do nome do objeto.

Por exemplo, se você executar o comando gsutil -q stat gs://my-bucket/my-object/, a gsutil procurará informações sobre o objeto my-object/ (com uma barra à direita), em vez de operar em objetos aninhados em my-bucket/my-object/. A menos que você realmente tenha um objeto com esse nome, a operação falhará.

Para a listagem de subdiretórios, use gsutil ls.

gcloud auth

Problema: tentei autenticar a gsutil usando o comando gcloud auth, mas ainda não consigo acessar meus buckets ou objetos.

Solução: seu sistema pode ter as versões da gsutil autônoma e do SDK do Cloud instaladas. Execute o comando gsutil version -l e verifique o valor de using cloud sdk. Se for False, seu sistema estará usando a versão autônoma da gsutil ao executar comandos. É possível remover essa versão da gsutil do seu sistema ou autenticar usando o comando gsutil config.

Bucket configurado como um site

Veja a seguir problemas comuns ao configurar um bucket para hospedar um site estático.

Veiculação HTTPS

Problema: quero veicular meu conteúdo por HTTPS sem usar um balanceador de carga.

Solução: é possível exibir conteúdo estático por HTTPS usando URIs diretos, como https://storage.googleapis.com/my-bucket/my-object. Para conhecer outras opções a fim de veicular seu conteúdo por meio de um domínio personalizado usando SSL, faça isto:

Confirmação de domínio

Problema: não consigo confirmar meu domínio.

Solução: normalmente, o processo de confirmação no Search Console direciona você para fazer o upload de um arquivo no seu domínio. No entanto, talvez não seja possível fazer isso sem antes ter um bucket associado, que só pode ser criado depois de realizar a confirmação de domínio.

Nesse caso, confirme a propriedade usando o método do provedor de nome de domínio. Consulte Confirmação de propriedade para conhecer as etapas e executar o processo. Ela pode ser feita antes da criação do bucket.

Página inacessível

Problema: recebo uma mensagem de erro Access denied em uma página da Web exibida pelo meu site.

Solução: verifique se o objeto está compartilhado publicamente. Se não estiver, consulte Como tornar públicos os dados para ver instruções sobre como fazer isso.

Se você fez o upload e compartilhou um objeto anteriormente, mas depois fez upload de uma nova versão dele, será necessário compartilhar o objeto publicamente. Isso ocorre porque a permissão pública é sobrescrita com o novo upload.

Download de conteúdo

Problema: recebo uma solicitação para fazer o download do conteúdo da minha página em vez de visualizá-lo no navegador.

Solução: se você especificar um MainPageSuffix como um objeto que não tenha um tipo de conteúdo da Web, em vez de ver a página, os visitantes do site receberão uma solicitação de download do conteúdo. Para resolver esse problema, atualize a entrada de metadados content-type com um valor adequado, como text/html. Consulte Como editar metadados de objeto para ver instruções sobre como executar a atualização.

Download de conteúdo usando storage.cloud.google.com

Problema: estou fazendo o download do meu conteúdo público de storage.cloud.google.com e recebo um erro 403 - Forbidden ao navegar até o objeto público

https://storage.cloud.google.com/[BUCKET_NAME]/[OBJECT_NAME]
no navegador.

Solução: o uso de storage.cloud.google.com para fazer o download de objetos é conhecido como downloads em navegadores autenticados. Essa opção sempre usa a autenticação baseada em cookies, mesmo quando os objetos são disponibilizados publicamente para allUsers. Se você tiver ativado os registros de auditoria do Cloud Storage, uma das restrições desse recurso será a desativação dos downloads em navegadores autenticados. Esses downloads resultam em uma resposta 403 quando os registros de auditoria estão ativados.

Para evitar esse problema, faça registros de auditoria ou mude para chamadas diretas de API compatíveis com downloads não autenticados.

301: movido permanentemente

Problema: o acesso a um caminho de diretório retorna um objeto vazio e um código de resposta HTTP 301.

Solução: se seu navegador faz o download de um objeto de zero byte e você recebe um código de resposta HTTP 301 ao acessar um diretório, como http://www.example.com/dir/, seu bucket provavelmente contém um objeto vazio com esse nome. Para verificar se esse é o caso e corrigir o problema, siga estas etapas:

  1. Abra o navegador do Cloud Storage no Console do Google Cloud.
    Abrir o navegador do Cloud Storage
  2. Clique no botão Ativar Cloud Shell na parte superior do Console do Google Cloud. Ativar o Cloud Shell
  3. Execute gsutil ls -R gs://www.example.com/dir/. Se a saída incluir http://www.example.com/dir/, você terá um objeto vazio nesse local.
  4. Remova o objeto vazio com o comando: gsutil rm gs://www.example.com/dir/

Agora é possível acessar http://www.example.com/dir/ e fazer com que ele retorne o arquivo index.html do diretório em vez do objeto vazio.

Como funcionam os erros no navegador do Cloud Storage

Problema: ao usar o navegador do Cloud Storage para executar uma operação, recebo uma mensagem de erro genérica. Por exemplo, a mensagem de erro é exibida quando tento excluir um bucket, mas não vejo detalhes sobre o motivo da falha na operação.

Solução: use as notificações do Console do Google Cloud para ver informações detalhadas sobre a operação com falha:

  1. Clique no botão Notificações no cabeçalho do Console do Google Cloud.

    Notificações

    Uma lista suspensa exibe as operações mais recentes realizadas pelo Console do Google Cloud.

  2. Clique no item que você quer saber mais sobre.

    Uma página é aberta e exibe informações detalhadas sobre a operação.

  3. Clique em cada linha para mostrar as informações detalhadas do erro.

    Veja abaixo um exemplo de informações de erro para uma operação de exclusão de bucket com falha. Os detalhes do erro indicam que uma política de retenção de bucket impediu a exclusão dele.

    Detalhes do erro de exclusão de bucket

A seguir