Usar o Cloud Storage

Se a sua app PHP 5 precisar de ler e escrever ficheiros durante a execução, ou publicar ficheiros como filmes, imagens ou outro conteúdo estático, recomendamos que use um contentor do Cloud Storage.

O App Engine cria um contentor predefinido quando cria uma app. Este contentor oferece os primeiros 5 GB de armazenamento gratuitamente e inclui uma quota gratuita para operações de E/S do Cloud Storage. Pode criar outros contentores do Cloud Storage, mas apenas o contentor predefinido inclui os primeiros 5 GB de armazenamento gratuitamente.

Usar o Cloud Storage com o App Engine

Para usar um contentor do Cloud Storage a partir de uma app do App Engine:

  1. Ver os nomes dos contentores existentes no seu projeto do App Engine. Especifica estes nomes quando carrega ou transfere dados do Cloud Storage.

    Recomendamos que armazene os nomes dos contentores do Cloud Storage nas variáveis de ambiente da sua app, em vez de os codificar diretamente na app.

  2. Na sua app, declare o Cloud Storage como uma dependência adicionando google/cloud-storage ao ficheiro composer.json da sua app e executando composer install a partir do diretório da app. Saiba mais acerca do compositor.

  3. Registe Google\Cloud\Storage\StorageClient como o wrapper de streams para a sua app. Em seguida, use o protocolo gs para ler e escrever ficheiros.

    Veja um exemplo de registo e utilização do wrapper de streams.

    Em alternativa, pode usar diretamente a biblioteca de cliente do Google Cloud.

Usar o segmento predefinido

Quando cria uma app, o App Engine cria um contentor predefinido que oferece os primeiros 5 GB de armazenamento gratuitamente. O contentor predefinido também inclui uma quota gratuita para operações de I/O do Cloud Storage. Consulte a secção Preços, quotas e limites para ver detalhes. O armazenamento que exceder o limite de 5 GB é-lhe cobrado.

O nome do contentor predefinido tem o seguinte formato:

project-id.appspot.com

O App Engine também cria um contentor que usa para armazenamento temporário quando implementa novas versões da sua app. Este contentor, denominado staging.project-id.appspot.com, destina-se apenas a utilização pelo App Engine. As apps não podem interagir com este contentor.

Definir autorizações de objetos e contentores

A conta de serviço associada à sua app precisa de autorizações para ler e escrever em contentores no seu projeto. Para saber que autorizações são necessárias, consulte as funções de IAM para o Cloud Storage.

Normalmente, a conta de serviço associada à sua app é a conta de serviço do App Engine predefinida.

Consoante a configuração da política da organização, a conta de serviço predefinida pode receber automaticamente a função de editor no seu projeto. Recomendamos vivamente que desative a concessão automática de funções aplicando a restrição da política da organização iam.automaticIamGrantsForDefaultServiceAccounts. Se tiver criado a sua organização após 3 de maio de 2024, esta restrição é aplicada por predefinição.

Se desativar a concessão automática de funções, tem de decidir que funções conceder às contas de serviço predefinidas e, em seguida, conceder estas funções.

Se a conta de serviço predefinida já tiver a função de editor, recomendamos que substitua a função de editor por funções menos permissivas.Para modificar as funções da conta de serviço em segurança, use o Simulador de políticas para ver o impacto da alteração e, em seguida, conceda e revogue as funções adequadas.

Para obter informações sobre como permitir que outros utilizadores, apps ou projetos acedam a um contentor e ao respetivo conteúdo, consulte Definir autorizações de contentores e Definir autorizações de objetos.

Usar o Cloud Storage com o servidor de desenvolvimento local

O servidor de desenvolvimento local do App Engine não emula o Cloud Storage, pelo que todos os pedidos do Cloud Storage têm de ser enviados através da Internet para um contentor do Cloud Storage real.

Preços, quotas e limites

Não existem cobranças de largura de banda associadas a chamadas da biblioteca de cliente do Cloud Storage para o Cloud Storage. No entanto, existem cobranças de operações. Além disso, as chamadas são contabilizadas na sua quota de obtenção de URLs, uma vez que a biblioteca usa o serviço de obtenção de URLs para interagir com o Cloud Storage.

Tenha em atenção que o Cloud Storage é um serviço pago; a faturação é feita de acordo com a folha de preços do Cloud Storage.