Como exibir arquivos estáticos

Os aplicativos geralmente precisam exibir 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 Platform, como o Cloud Storage. Podem exibir diretamente ou usar uma Rede de fornecimento de conteúdo (CDN, na sigla em inglês) de terceiros.

Como exibir arquivos do Cloud Storage

O Cloud Storage hospeda recursos estáticos de aplicativos dinâmicos da Web. Estes são os benefícios de usar o Cloud Storage em vez de exibir diretamente no aplicativo:

  • O Cloud Storage funciona basicamente como uma rede de fornecimento de conteúdo (em inglês). 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 o upload dos recursos para o Cloud Storage usando o SDK do Cloud ou a API Cloud Storage.

A biblioteca de cliente do Google Cloud fornece um cliente idiomático .NET ao Cloud Storage, para armazenar e recuperar dados com o Cloud Storage em um aplicativo do App Engine.

Exemplo de disponibilização em um intervalo do Cloud Storage

Este exemplo simples cria um intervalo do Cloud Storage e faz upload de recursos estáticos usando o SDK do Cloud:

  1. Crie um intervalo. É comum dar o nome do ID do projeto ao intervalo, mas isso não é obrigatório. O nome dele precisa ser exclusivo.

    gsutil mb gs://<your-bucket-name>
    
  2. Configure a ACL para conceder acesso de leitura aos itens no intervalo.

    gsutil defacl set public-read gs://<your-bucket-name>
    
  3. Faça o upload dos itens para o intervalo. Geralmente, o comando rsync é o jeito mais rápido e fácil de fazer upload e atualizar recursos. Também é possível usar o cp.

    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 exibir recursos estáticos, incluindo a exibição de um nome de domínio personalizado, consulte Como hospedar um site estático.

Como exibir arquivos por outros serviços do GCP

Também é possível usar o Cloud CDN ou outros serviços de armazenamento.

Como exibir arquivos diretamente do aplicativo

Normalmente, a disponibilização de arquivos do aplicativo é simples. No entanto, lembre-se destas desvantagens:

  • É possível que as solicitações de arquivos estáticos utilizem recursos usados em solicitações dinâmicas.
  • Dependendo da sua configuração, a exibiçã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.

Dica: em ambientes de produção, recomenda-se a exibição do conteúdo estático separadamente do aplicativo, seja no GCP ou externamente, com a utilização de uma CDN de terceiros.

Exemplo de exibição de arquivos estáticos com o aplicativo

<html>
<head>
    <meta charset="utf-8" />
    <title>Hello Static World</title>
</head>
<body>
    <p>This is a static html document.</p>
    <p><img src="trees.jpg" /></p>
</body>
</html>

Para ativar a exibição de arquivos estáticos, adicione este código ao arquivo Startup.cs:

app.UseDefaultFiles();
app.UseStaticFiles();