Se o aplicativo precisar ler e gravar arquivos durante o ambiente de execução ou exibir arquivos, como filmes, imagens ou outro conteúdo estático, recomendamos o uso de um bucket do Cloud Storage.
Ao criar um aplicativo, o App Engine cria um bucket padrão que fornece gratuitamente os primeiros 5 GB de armazenamento e inclui uma cota gratuita para operações de E/S do Cloud Storage. É possível criar outros buckets do Cloud Storage, mas apenas o bucket padrão inclui os primeiros 5 GB de armazenamento gratuito.
Como usar o Cloud Storage com o App Engine
Para usar um bucket do Cloud Storage a partir de um aplicativo do App Engine:
Veja os nomes dos buckets atuais no seu projeto do App Engine. Esses nomes são especificados durante o upload ou download de dados do Cloud Storage.
É recomendável armazenar os nomes dos buckets do Cloud Storage nas variáveis de ambiente do aplicativo, em vez de codificá-lo no app.
No seu aplicativo, declare o Cloud Storage como uma dependência fazendo o seguinte:
Go
Como usar o comando
go get cloud.google.com/go/storage
. Como alternativa, declare dependências no arquivogo.mod
do seu aplicativo. Saiba mais sobre como especificar dependências.Use a biblioteca de cliente do Google Cloud para fazer upload ou download de dados de seus buckets.
Para informações sobre como exibir conteúdo estático, consulte Como armazenar e exibir arquivos estáticos.
Java
Adicione a biblioteca ao arquivo de dependências do app.
Use a biblioteca de cliente do Google Cloud para fazer upload ou download de dados de seus buckets.
Para informações sobre como exibir conteúdo estático, consulte Como armazenar e exibir arquivos estáticos.
Node.js
Em
app.yaml
, adicione o ID do projeto ao valor do ambienteGOOGLE_CLOUD_PROJECT
. Em seguida, configure o valor de ambienteGCLOUD_STORAGE_BUCKET
para o nome do bucket do Cloud Storage criado anteriormente.Adicione
@google-cloud/storage
ao arquivopackage.json
do app. Saiba mais sobre como especificar dependências.Use a biblioteca de cliente do Google Cloud para fazer upload ou download de dados de seus buckets.
Para informações sobre como exibir conteúdo estático, consulte Como armazenar e exibir arquivos estáticos.
Consulte o arquivo
README.md
para instruções sobre como executar e testar localmente.PHP
Adicione
google/cloud-storage
ao arquivocomposer.json
do app e executecomposer install
no diretório do app. Saiba mais sobre como especificar dependências.Registre
Google\Cloud\Storage\StorageClient
como o wrapper de stream do aplicativo. Em seguida, use o protocologs
para ler e gravar arquivos.Veja um exemplo de registro e uso do wrapper de stream.
É possível também usar diretamente a biblioteca de cliente do Google Cloud.
Python
Adicione
google-cloud-storage
ao arquivorequirements.txt
do app. Saiba mais sobre como especificar dependências.Use a biblioteca de cliente do Google Cloud para fazer upload ou download de dados de seus buckets.
Para informações sobre como exibir conteúdo estático, consulte Como armazenar e exibir arquivos estáticos.
Ruby
Adicione
google-cloud-storage
aoGemfile
do seu app. Saiba mais sobre como especificar dependências.Use a biblioteca de cliente do Google Cloud para fazer upload ou download de dados de seus buckets.
Para informações sobre como exibir conteúdo estático, consulte Como armazenar e exibir arquivos estáticos.
Como usar o bucket padrão
Ao criar um aplicativo, o App Engine cria um bucket padrão que fornece gratuitamente os primeiros 5 GB de armazenamento. O bucket padrão também inclui uma cota gratuita para operações de E/S do Cloud Storage. Consulte Preços, cotas e limites para mais detalhes. Além disso, você será cobrado pelo armazenamento que exceder o limite dos 5 GB.
O nome do bucket padrão está no seguinte formato:
project-id.appspot.com
O App Engine também cria um bucket para armazenamento temporário quando implanta novas versões do aplicativo. Esse bucket, denominado staging.project-id.appspot.com
, precisa ser usado somente pelo App Engine. Os aplicativos não podem interagir com esse bucket.
Definir permissões de bucket
A conta de serviço associada ao seu app precisa de permissões para ler e gravar nos buckets do seu projeto. Para saber quais permissões são necessárias, consulte Papéis do IAM para o Cloud Storage.
Normalmente, a conta de serviço associada ao seu aplicativo é a conta de serviço padrão do App Engine.
Dependendo da configuração da política da organização, a conta de serviço padrão pode
receber automaticamente o papel de Editor no
projeto. É altamente recomendável desativar a concessão automática de papéis
aplicando a restrição
da política da organização iam.automaticIamGrantsForDefaultServiceAccounts
. Se você criou a organização após 3 de maio de 2024, essa
restrição será aplicada por padrão.
Se você desativar a concessão automática de papéis, precisará decidir quais papéis conceder às contas de serviço padrão e, em seguida, conceder esses papéis por conta própria.
Se a conta de serviço padrão já tiver o papel de Editor, recomendamos que você o substitua por papéis menos permissivos. Para modificar com segurança os papéis da conta de serviço, use o Simulador de política para ver o impacto da alteração e, em seguida, conceda e revogue os papéis apropriados.
Para informações sobre como permitir que outros usuários, aplicativos ou projetos acessem um bucket e o conteúdo dele, consulte Como definir permissões de bucket.
Como usar o Cloud Storage com o servidor de desenvolvimento local
O servidor de desenvolvimento local do App Engine não emula o Cloud Storage. Portanto, todas as solicitações do Cloud Storage precisam ser enviadas pela Internet para um bucket real do Cloud Storage.
Preços, cotas e limites
Não há cobranças de largura de banda associadas às chamadas da biblioteca de cliente para Cloud Storage. No entanto, há cobranças de operações. Além disso, as chamadas são contabilizadas na cota de busca de URL, uma vez que a biblioteca usa o serviço de busca de URL para interagir com o Cloud Storage.
O Cloud Storage é um serviço pago. Você será cobrado de acordo com a tabela de preços desse serviço.