Muitas vezes, os aplicativos precisam disponibilizar arquivos estáticos, como JavaScript, imagens e CSS, além de manipular solicitações dinâmicas. Os aplicativos no ambiente flexível podem exibir arquivos estáticos de uma opção do Google Cloud, como o Cloud Storage, exibi-los diretamente ou usar uma rede de fornecimento de conteúdo (CDN) de terceiros.
Como exibir arquivos do Cloud Storage
O Cloud Storage pode hospedar recursos estáticos de aplicativos dinâmicos da Web. Estes são os benefícios de usar o Cloud Storage em vez de disponibilizar diretamente no aplicativo:
- O Cloud Storage funciona basicamente como uma rede de fornecimento de conteúdo. Por padrão, qualquer objeto publicamente legível é armazenado em cache na rede global do Cloud Storage. Por isso, não é preciso fazer nenhuma configuração especial.
- A carga do aplicativo é reduzida ao descarregar os recursos estáticos em disponibilização no Cloud Storage. Dependendo de quantos você tiver e da frequência de acesso, isso reduz bastante o custo de execução do aplicativo.
- As tarifas de largura de banda para acessar conteúdo costumam ser menores com o Cloud Storage.
É possível fazer upload dos recursos para o Cloud Storage usando a ferramenta de linha de comando gsutil
ou a API Cloud Storage.
A biblioteca de cliente do Google Cloud fornece um cliente idiomático do PHP ao Cloud Storage para armazenar e recuperar dados com o Cloud Storage em um aplicativo do App Engine.
O cliente do PHP também fornece um wrapper de stream (em inglês) com suporte da API, que pode ser usado para interagir com o Cloud Storage como um sistema de arquivos especializado.
Exemplo de exibição em um bucket do Cloud Storage
Este exemplo simples cria um bucket do Cloud Storage e faz upload de recursos estáticos usando a Google Cloud CLI:
Crie um bucket. É comum dar o nome do ID do projeto ao bucket, mas isso não é obrigatório. O nome dele precisa ser exclusivo.
gsutil mb gs://<your-bucket-name>
Configure a ACL para conceder acesso de leitura aos itens no bucket.
gsutil defacl set public-read gs://<your-bucket-name>
Faça o upload dos itens para o bucket. Geralmente, o comando
rsync
é o jeito mais rápido e fácil de fazer upload e atualizar recursos. Também é possível usar ocp
.gsutil -m rsync -r ./static gs://<your-bucket-name>/static
Agora é possível acessar os recursos estáticos via
https://storage.googleapis.com/<your-bucket-name>/static/...
.
Para saber mais sobre como usar o Cloud Storage para disponibilizar recursos estáticos, incluindo a disponibilização a partir de um nome de domínio personalizado, consulte Como hospedar um site estático.
Como exibir arquivos de outros serviços do Google Cloud
Você também tem a opção de usar o Cloud CDN ou outros serviços de armazenamento do Google Cloud.
Como exibir arquivos diretamente do aplicativo
Normalmente, a exibição de arquivos do aplicativo é simples. No entanto, lembre-se destas desvantagens:
- É possível que as solicitações de arquivos estáticos utilizem recursos aplicados em solicitações dinâmicas.
- Dependendo da sua configuração, a disponibilização de arquivos do seu aplicativo pode resultar em um aumento na latência de resposta. Isso também poderá acontecer quando novas instâncias forem criadas para processar o carregamento.
Exemplo de exibição de arquivos estáticos com o aplicativo
O ambiente de execução do PHP executa o Nginx
para disponibilizar seu aplicativo, que está configurado para disponibilizar arquivos estáticos no
diretório do projeto. É necessário declarar a raiz do documento especificando
document_root
no seu arquivo app.yaml
:
Como disponibilizar a partir de uma rede de fornecimento de conteúdo de terceiros
Você pode usar qualquer CDN externa de terceiros para exibir seus arquivos estáticos e armazenar solicitações dinâmicas em cache, mas seu aplicativo poderá ter aumento de latência e custo.
Para melhorar o desempenho, use uma CDN de terceiros compatível com o CDN Interconnect.