Instruções e requisitos de configuração do laboratório
Proteja sua conta e seu progresso. Sempre use uma janela anônima do navegador e suas credenciais para realizar este laboratório.

Desenvolvimento de apps: como armazenar arquivos de imagem e vídeo no Cloud Storage – Python

Laboratório 1 hora universal_currency_alt 5 créditos show_chart Avançado
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Este conteúdo ainda não foi otimizado para dispositivos móveis.
Para aproveitar a melhor experiência, acesse nosso site em um computador desktop usando o link enviado a você por e-mail.

Informações gerais

O Cloud Storage permite o armazenamento global e a recuperação de volumes de dados a qualquer momento. É possível usar esse serviço em várias situações, como veiculação de conteúdo de sites, armazenamento de dados para arquivamento e recuperação de desastres ou distribuição de objetos de dados grandes aos usuários por download direto.

Neste laboratório, você vai configurar um aplicativo para usar o Cloud Storage no armazenamento e recuperação de dados. O aplicativo é um teste on-line e os dados são coletados nos formulários, que contêm uma imagem do computador local enviada por upload.

Objetivos

Neste laboratório, você aprenderá a:

  • configurar o Cloud Shell como o ambiente de desenvolvimento;
  • atualizar o código do aplicativo para integrar o Cloud Datastore;
  • usar o aplicativo de teste para fazer upload de um arquivo de imagem no Cloud Storage e conferir a imagem no próprio aplicativo.

Configuração e requisitos

Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período e sem custos financeiros.

  1. Faça login no Qwiklabs em uma janela anônima.

  2. Confira o tempo de acesso do laboratório (por exemplo, 1:15:00) e finalize todas as atividades nesse prazo.
    Não é possível pausar o laboratório. Você pode reiniciar o desafio, mas vai precisar refazer todas as etapas.

  3. Quando tudo estiver pronto, clique em Começar o laboratório.

  4. Anote as credenciais (Nome de usuário e Senha). É com elas que você vai fazer login no Console do Google Cloud.

  5. Clique em Abrir Console do Google.

  6. Clique em Usar outra conta, depois copie e cole as credenciais deste laboratório nos locais indicados.
    Se você usar outras credenciais, vai receber mensagens de erro ou cobranças.

  7. Aceite os termos e pule a página de recursos de recuperação.

Ative o Google Cloud Shell

O Google Cloud Shell é uma máquina virtual com ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud.

O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.

  1. No console do Cloud, clique no botão "Abrir o Cloud Shell" na barra de ferramentas superior direita.

    Ícone do Cloud Shell em destaque

  2. Clique em Continuar.

O provisionamento e a conexão do ambiente podem demorar um pouco. Quando você estiver conectado, já estará autenticado, e o projeto estará definido com seu PROJECT_ID. Exemplo:

ID do projeto em destaque no terminal do Cloud Shell

A gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  • Para listar o nome da conta ativa, use este comando:
gcloud auth list

Saída:

Credentialed accounts: - @.com (active)

Exemplo de saída:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Para listar o ID do projeto, use este comando:
gcloud config list project

Saída:

[core] project =

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: a documentação completa da gcloud está disponível no guia com informações gerais sobre a gcloud CLI .

Tarefa 1: criar um ambiente virtual

O elemento virtualenv permite criar ambientes virtuais de espaço do usuário para instalar conjuntos diferentes de pacotes Python em vários projetos. Além disso, não é preciso instalar os pacotes Python globalmente, o que pode corromper ferramentas do sistema ou outros projetos do Python. Neste laboratório, também usamos esse elemento para garantir que o Python3 seja usado para todos os comandos de Python.

  1. Defina um ambiente "virtualenv" para Python 3:

    virtualenv -p python3 vrenv
  2. Ative o ambiente virtual:

    source vrenv/bin/activate

Tarefa 2: preparar o aplicativo de teste

Nesta seção você acessará o Cloud Shell, clonará o repositório git que contém o teste e executará o aplicativo.

Clonar o código-fonte no Cloud Shell

  1. Clone o repositório deste curso usando o comando abaixo:

    git clone https://github.com/GoogleCloudPlatform/training-data-analyst
  2. Crie um link flexível como atalho para o diretório de trabalho:

    ln -s ~/training-data-analyst/courses/developingapps/v1.3/python/cloudstorage ~/cloudstorage

Configurar e executar o aplicativo de teste

  1. Mude o diretório de trabalho:

    cd ~/cloudstorage/start
  2. Configure o aplicativo:

    . prepare_environment.sh

    Ignore os avisos.

    Esse arquivo de script faz o seguinte:

    • cria um aplicativo do App Engine;
    • exporta a variável de ambiente GCLOUD_PROJECT;
    • atualiza o pip e depois executa pip install -r requirements.txt;
    • cria entidades no Cloud Datastore;
    • mostra o ID do projeto do Google Cloud Platform.
  3. Execute o aplicativo:

    python run_server.py

    O aplicativo está sendo executado quando a seguinte saída aparece:

    * Running on http://127.0.0.1:8080/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 502-577-323

Revisar o aplicativo de teste

  1. Para ver o aplicativo, clique em Web preview > Preview on port 8080.

  2. Clique no link Create Question na barra de ferramentas.

Vai aparecer um formulário simples com caixas de texto para as perguntas e respostas, além de botões de opção para a escolha da alternativa correta.

A página "Adicionar pergunta", que inclui o campo "Imagem" em destaque, com o botão "Escolher arquivo".

Observação: o formulário tem um campo para fazer upload de arquivos, que pode ser usado para enviar imagens ou vídeos. Neste laboratório, você fará upload de um arquivo de imagem (parecido com o upload de vídeos).

Tarefa 3: analisar o código do aplicativo de teste

Nesta seção, você revisará o código do aplicativo para o estudo de caso.

Neste laboratório, você verá e editará arquivos. Você pode usar os editores de shell instalados no Cloud Shell, como nano ou vim, ou usar o editor de código do Cloud Shell.

Este laboratório usará o editor de código do Cloud Shell para revisar o código do aplicativo de teste.

Abrir o editor de código do Cloud Shell

  • No Cloud Shell, clique em Abrir editor > Abrir em uma nova janela para iniciar o editor de código.

Verificar o código do aplicativo

  1. Acesse a pasta /cloudstorage/start pelo painel do navegador de arquivos no lado esquerdo do editor.

  2. Selecione o arquivo add.html na pasta …quiz/webapp/templates/.

    Esse arquivo contém o modelo para o formulário "Create Question".

    O formulário foi modificado para usar multipart/form-data como o enc-type, e há dois novos controles de formulário:

    • Um controle de upload de arquivo chamado image
    • Um campo oculto chamado imageUrl
  3. Selecione o arquivo routes.py na pasta ...quiz/webapp.

    Esse arquivo contém a rota para o gerenciador POST que recebe os dados do formulário. Ele foi modificado para receber o arquivo de imagem do formulário.

  4. Selecione o arquivo questions.py na pasta ...quiz/webapp.

    Esse arquivo contém o gerenciador que processa os dados do formulário extraídos do arquivo routes.py. Você modificará esse arquivo para usar um novo módulo que seja um cliente do Cloud Storage.

  5. Selecione o arquivo ...quiz/gcp/storage.py.

    Nele, você escreverá o código para salvar os dados do arquivo de imagem no Cloud Storage.

Tarefa 4: criar um bucket do Cloud Storage

Nesta seção, você vai criar um bucket do Cloud Storage e exportar uma variável de ambiente que faz referência a ele.

  1. Volte para a linha de comando do Cloud Shell e clique em Abrir terminal.

  2. Interrompa o aplicativo pressionando Ctrl + C.

  3. Crie um bucket do Cloud Storage chamado <Project ID>-media:

    gcloud storage buckets create gs://$DEVSHELL_PROJECT_ID-media

    É possível criar um bucket usando o comando gcloud storage buckets create, que vai nomear o bucket como gs://BUCKET_NAME.

    Use $DEVSHELL_PROJECT_ID como o prefixo do nome do bucket seguido por -media

  4. Para exportar o bucket do Cloud Storage como uma variável de ambiente com o nome GCLOUD_BUCKET, execute este comando:

    export GCLOUD_BUCKET=$DEVSHELL_PROJECT_ID-media
Observação: o aplicativo usa variáveis de ambiente para fazer configurações. Isso permite que a equipe de desenvolvedores implante o aplicativo durante o desenvolvimento, teste, preparo ou produção, alterando apenas essas variáveis.

Clique em Verificar meu progresso para conferir o objetivo. Criar um bucket

Tarefa 5: adicionar objetos ao Cloud Storage

Nesta seção, você escreverá o código para salvar os arquivos enviados por upload no Cloud Storage.

Observação: atualize ou adicione códigos entre estes comentários:

// TODO

// END TODO

Para expandir seu aprendizado, revise o código, os comentários in-line e a documentação da API relacionada.

Para mais informações sobre a documentação de API do Cloud Storage, consulte APIs e referência.

Importar e usar o módulo Python do Cloud Storage

  1. No editor de código, vá para o início do arquivo ...quiz/gcp/storage.py.
  2. Confira o nome do bucket na variável de ambiente GCLOUD_BUCKET.
  3. Importe o módulo de armazenamento do pacote google.cloud.
  4. Crie um cliente do Cloud Storage.
  5. Crie uma referência para o bucket do Cloud Storage.

quiz/gcp/storage.py:

# TODO: Get the Bucket name from the GCLOUD_BUCKET environment variable bucket_name = os.getenv('GCLOUD_BUCKET') # END TODO # TODO: Import the storage module from google.cloud import storage # END TODO # TODO: Create a client for Cloud Storage storage_client = storage.Client() # END TODO # TODO: Use the client to get the Cloud Storage bucket bucket = storage_client.get_bucket(bucket_name) # END TODO

Escrever o código para enviar um arquivo ao Cloud Storage

  1. Ainda em storage.py, na função upload_file(...), remova a instrução "pass" existente e use o cliente do Cloud Storage para fazer upload de um arquivo no bucket desse serviço e torná-lo público.
  2. Crie uma referência para um objeto blob do Cloud Storage no bucket.
  3. Use o objeto blob para fazer upload da imagem.
  4. Torne o arquivo público.
  5. Retorne o URL público do blob.

quiz/gcp/storage.py função upload_file(...):

""" Uploads a file to a given Cloud Storage bucket and returns the public url to the new object. """ def upload_file(image_file, public): pass # TODO: Use the bucket to get a blob object blob = bucket.blob(image_file.filename) # END TODO # TODO: Use the blob to upload the file blob.upload_from_string( image_file.read(), content_type=image_file.content_type) # END TODO # TODO: Make the object public if public: blob.make_public() # END TODO # TODO: Modify to return the blob's Public URL return blob.public_url # END TODO
  1. Salve o arquivo storage.py.

Escreva o código para usar a funcionalidade do Cloud Storage

  1. No editor, vá para o início do arquivo ...quiz/webapp/questions.py.
  2. Modifique a instrução "import" para usar os clientes de armazenamento e de repositório de dados.
  3. Vá até a função upload_file(...) e use seu cliente de armazenamento para fazer o upload de um arquivo. Além disso, atribua o URL público retornado a uma variável.
  4. Modifique a instrução "return" para retornar o URL público.
  5. Vá até a função save_question(...) e escreva um teste "if" para conferir se image_file está presente.
  6. Se estiver, chame a função upload_file(...) e atribua o URL público a uma propriedade de entidade chamada "imageUrl".
  7. Caso contrário, atribua uma string vazia à propriedade "imageUrl" da entidade.

quiz/webapp/questions.py:

# TODO: Import the storage module from quiz.gcp import storage, datastore # END TODO """ uploads file into google cloud storage - upload file - return public_url """ def upload_file(image_file, public): if not image_file: return None # TODO: Use the storage client to Upload the file # The second argument is a boolean public_url = storage.upload_file( image_file, public ) # END TODO # TODO: Return the public URL # for the object return public_url # END TODO """ uploads file into google cloud storage - call method to upload file (public=true) - call datastore helper method to save question """ def save_question(data, image_file): # TODO: If there is an image file, then upload it # And assign the result to a new Datastore # property imageUrl # If there isn't, assign an empty string if image_file: data['imageUrl'] = str( upload_file(image_file, True)) else: data['imageUrl'] = u'' # END TODO data['correctAnswer'] = int(data['correctAnswer']) datastore.save_question(data) return
  1. Salve o arquivo questions.py.

Executar o aplicativo e criar um objeto do Cloud Storage

  1. Volte ao Cloud Shell para executar o aplicativo:
python run_server.py
  1. Faça o download do arquivo de imagem do logotipo do Cloud Storage na sua máquina local.

  2. No Cloud Shell, clique em Visualização na Web > Visualizar na porta 8080 para conferir o aplicativo de teste.

  3. Clique no link Criar pergunta.

  4. Preencha o formulário com os valores abaixo e clique em Salvar.

    Campo do formulário Valor
    Autor Seu nome
    Teste Google Cloud Platform
    Título Which product does this logo relate to?
    Imagem Upload the Google_Cloud_Storage_logo.png file you previously downloaded
    Resposta 1 App Engine
    Resposta 2 Cloud Storage (Selecione o botão de opção "Resposta 2")
    Resposta 3 Compute Engine
    Resposta 4 Kubernetes Engine
  5. Volte ao console do Cloud e acesse Menu de navegação > Cloud Storage.

  6. Em Cloud Storage > página Buckets, clique no bucket correto (nomeado <Project ID>-media).

O novo objeto chamado Google_Cloud_Storage_logo.png aparece.

Clique em Verificar meu progresso para conferir o objetivo. Faça upload de objetos para o bucket.

Executar o aplicativo cliente e testar o URL público do Cloud Storage

  1. Adicione /api/quizzes/gcp ao final do URL do aplicativo.

    Você verá que os dados JSON foram retornados para o cliente correspondente à pergunta que você adicionou no aplicativo da Web.

    A propriedade imageUrl terá um valor correspondente ao objeto no Cloud Storage.

  2. Volte à página inicial do aplicativo e clique no link Take Test.

  3. Clique em GCP e responda às questões.

    Quando chegar à pergunta que acabou de ser adicionada, você vai perceber que a imagem foi formatada no aplicativo da Web no lado do cliente.

Finalize o laboratório

Clique em Terminar o laboratório após a conclusão. O Google Cloud Ensina remove os recursos usados e limpa a conta por você.

Você vai poder avaliar sua experiência no laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Enviar.

O número de estrelas indica o seguinte:

  • 1 estrela = muito insatisfeito
  • 2 estrelas = insatisfeito
  • 3 estrelas = neutro
  • 4 estrelas = satisfeito
  • 5 estrelas = muito satisfeito

Feche a caixa de diálogo se não quiser enviar feedback.

Para enviar seu feedback, fazer sugestões ou correções, use a guia Suporte.

Copyright 2026 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de empresas e produtos podem ser marcas registradas das empresas a que estão associados.

Antes de começar

  1. Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
  2. Os laboratórios têm um limite de tempo e não têm o recurso de pausa. Se você encerrar o laboratório, vai precisar recomeçar do início.
  3. No canto superior esquerdo da tela, clique em Começar o laboratório

Usar a navegação anônima

  1. Copie o nome de usuário e a senha fornecidos para o laboratório
  2. Clique em Abrir console no modo anônimo

Fazer login no console

  1. Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
  2. Aceite os termos e pule a página de recursos de recuperação
  3. Não clique em Terminar o laboratório a menos que você tenha concluído ou queira recomeçar, porque isso vai apagar seu trabalho e remover o projeto

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível

Um laboratório por vez

Confirme para encerrar todos os laboratórios atuais e iniciar este

Use a navegação anônima para executar o laboratório

A melhor maneira de executar este laboratório é usando uma janela de navegação anônima ou privada. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.