Noções básicas sobre recursos do Google Cloud Storage

buckets, objetos e ACLs

bucket é o local de armazenamento onde você lê e grava arquivos. É preciso sempre especificar um bucket ao usar a biblioteca de cliente do App Engine para Cloud Storage. Um projeto pode acessar vários buckets. A biblioteca de cliente não é compatível com a criação de intervalos.

As listas de controle de acesso (ACLs, na sigla em inglês) controlam o acesso aos buckets e aos objetos contidos neles. O projeto e o aplicativo do App Engine são adicionados automaticamente à ACL que permite acesso ao bucket quando você cria um bucket no projeto.

A ACL que permite o acesso ao bucket é diferente das potencialmente muitas ACLs que regem os objetos nesse bucket. Por isso, o app tem privilégios de leitura e gravação no(s) bucket(s) para o(s) qual(is) está ativado, mas só tem direitos completos sobre os objetos que ele cria no bucket. O acesso do app a objetos criados por outros apps ou pessoas é limitado aos direitos atribuídos ao app pelo criador do objeto.

Se um objeto for criado no bucket sem uma ACL definida explicitamente para ele, ele usará a ACL de objeto padrão atribuída ao bucket pelo proprietário do bucket. Se o proprietário do bucket não tiver especificado uma ACL de objeto padrão, o objeto padrão será public-read, o que significa que qualquer pessoa que tiver permissão de acesso ao bucket poderá ler o objeto.

ACLs e a biblioteca de cliente

Um aplicativo que usa a biblioteca de cliente pode alterar a ACL do bucket e também especificar uma ACL que controla o acesso aos objetos que ela cria. As configurações da ACL disponíveis estão descritas na documentação da API de armazenamento.

Como modificar objetos do Cloud Storage

Depois de criar um objeto em um bucket, você não poderá modificar nem anexar a ele. Em vez disso, você precisa substituir o objeto por um novo objeto do mesmo nome que contenha as alterações desejadas.

Cloud Storage e subdiretórios

A biblioteca de cliente do App Engine para Cloud Storage permite fornecer delimitadores de subdiretório ao criar um objeto, mas não há subdiretórios verdadeiros no Cloud Storage. Em vez disso, um subdiretório no Cloud Storage faz parte do nome de arquivo do objeto.

Por exemplo, suponha que a criação de um objeto somewhere/over/the/rainbow.mp3 armazene o arquivo rainbow.mp3 no subdiretório somewhere/over/the/. Em vez disso, o nome do objeto é definido como somewhere/over/the/rainbow.mp3.

A seguir