Compreender as funcionalidades do Google Cloud Storage

Recipientes, objetos e LCAs

Um contentor é a localização de armazenamento a partir da qual lê ficheiros e para a qual escreve ficheiros. Tem sempre de especificar um contentor quando usar a biblioteca cliente do App Engine para o Cloud Storage. O seu projeto pode aceder a vários contentores. Tenha em atenção que a biblioteca do cliente não suporta a criação de contentores.

As listas de controlo de acesso (LCAs) controlam o acesso aos contentores e aos objetos neles contidos. O seu projeto e a sua app do App Engine são adicionados automaticamente à ACL que permite o acesso ao contentor quando cria um contentor no seu projeto.

Tenha em atenção que a LCA que permite o acesso ao contentor é diferente das potencialmente muitas LCAs que regem os objetos nesse contentor. Assim, a sua app tem privilégios de leitura e escrita nos contentores para os quais está ativada, mas só tem direitos completos sobre os objetos que cria no contentor. O acesso da sua app a objetos criados por outras apps ou pessoas está limitado aos direitos concedidos à sua app pelo criador dos objetos.

Se um objeto for criado no contentor sem uma ACL definida explicitamente para o mesmo, usa a ACL de objeto predefinida atribuída ao contentor pelo proprietário do contentor. Se o proprietário do contentor não tiver especificado uma LCA do objeto predefinida, a predefinição do objeto é public-read, o que significa que qualquer pessoa com acesso permitido ao contentor pode ler o objeto.

LCAs e a biblioteca cliente

Uma app que use a biblioteca de cliente pode alterar a ACL do contentor e também pode especificar uma ACL que controle o acesso aos objetos que cria. As definições de LCA disponíveis estão descritas na documentação da API Storage.

Modificar objetos do Cloud Storage

Depois de criar um objeto num contentor, não pode modificá-lo nem acrescentar-lhe nada. Em alternativa, tem de substituir o objeto por um novo objeto com o mesmo nome que contenha as alterações pretendidas.

Cloud Storage e subdiretórios

A biblioteca de cliente do App Engine para o Cloud Storage permite-lhe fornecer delimitadores de subdiretórios quando cria um objeto, mas não existem subdiretórios verdadeiros no Cloud Storage. Em alternativa, uma subdiretoria no Cloud Storage faz parte do nome do ficheiro do objeto.

Por exemplo, pode presumir que a criação de um objeto somewhere/over/the/rainbow.mp3 armazena o ficheiro rainbow.mp3 no subdiretório somewhere/over/the/. Em alternativa, o nome do objeto é definido como somewhere/over/the/rainbow.mp3.

O que se segue?