arrow_back

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

Acesse mais de 700 laboratórios e cursos

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 Intermediário
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Acesse mais de 700 laboratórios e cursos

GSP185

Visão geral

O Cloud Storage permite o armazenamento global e a recuperação de volumes de dados a qualquer momento. Você pode usar o Cloud Storage em diversas situações, como na veiculação de conteúdo de sites, no armazenamento de dados para recuperação de desastres e arquivos ou na distribuição de grandes objetos de dados a usuários por download direto.

Neste laboratório, você irá 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

Antes de clicar no botão Começar o Laboratório

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é ativado quando você clica em Iniciar laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, e não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima (recomendado) ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório: não se esqueça que, depois de começar, não será possível pausar o laboratório.
Observação: use apenas a conta de estudante neste laboratório. Se usar outra conta do Google Cloud, você poderá receber cobranças nela.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar por ele, uma caixa de diálogo vai aparecer para você selecionar a forma de pagamento. No painel Detalhes do Laboratório, à esquerda, você vai encontrar o seguinte:

    • O botão Abrir Console do Google Cloud
    • O tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações, se forem necessárias
  2. Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.

    O laboratório ativa os recursos e depois abre a página Fazer Login em outra guia.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.

    {{{user_0.username | "Username"}}}

    Você também encontra o nome de usuário no painel Detalhes do Laboratório.

  4. Clique em Próxima.

  5. Copie a Senha abaixo e cole na caixa de diálogo de Olá.

    {{{user_0.password | "Password"}}}

    Você também encontra a senha no painel Detalhes do Laboratório.

  6. Clique em Próxima.

    Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  7. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.

Observação: para acessar os produtos e serviços do Google Cloud, clique no Menu de navegação ou digite o nome do serviço ou produto no campo Pesquisar.

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual com várias 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. Clique em Ativar o Cloud Shell na parte de cima do console do Google Cloud.

  2. Clique nas seguintes janelas:

    • Continue na janela de informações do Cloud Shell.
    • Autorize o Cloud Shell a usar suas credenciais para fazer chamadas de APIs do Google Cloud.

Depois de se conectar, você verá que sua conta já está autenticada e que o projeto está configurado com seu Project_ID, . A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

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

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

Saída:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Observação: consulte a documentação completa da gcloud no Google Cloud no guia de visão geral da gcloud CLI.

Iniciar o editor de código do Cloud Shell

  1. No Cloud Shell, clique em Abrir editor para iniciar o editor de código.

Observação: o editor de código é iniciado em uma guia separada do navegador, junto com o Cloud Shell.
  1. Execute o comando a seguir para configurar o ID do seu projeto, substituindo YOUR-PROJECT-ID pelo ID especificado:
gcloud config set project <YOUR-PROJECT-ID>

Tarefa 1: prepare o aplicativo de teste

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

Clonar o código-fonte no Cloud Shell

  • Clone o repositório deste curso usando o comando abaixo:
git clone https://github.com/GoogleCloudPlatform/training-data-analyst

Configurar e executar o aplicativo de teste

  1. Mude o diretório de trabalho:

    cd ~/training-data-analyst/courses/developingapps/python/cloudstorage/start
  2. Defina a região usando uma variável:

    REGION={{{project_0.default_region | REGION}}} sed -i s/us-central/$REGION/g prepare_environment.sh
  3. Configure o aplicativo:

    . prepare_environment.sh Observação: 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
    • Exibe o ID do projeto
  4. 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 acessar o aplicativo, clique em Visualização na Web > Visualizar na porta 8080.

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

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

Observação: o formulário tem um novo campo para upload de arquivos que pode ser usado no envio de imagens ou vídeos. Neste laboratório, você vai fazer o upload de um arquivo de imagem (semelhante ao upload de vídeos).

Tarefa 2: examine o código do aplicativo de teste

Nesta seção, você vai 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.

Neste laboratório, vamos usar o editor do Cloud Shell para revisar o código do aplicativo de teste.

Verificar o código do aplicativo

  1. Navegue até a pasta /training-data-analyst/courses/developingapps/python/datastore/start usando o 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 3: crie um bucket do Cloud Storage

Nesta seção, você 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.

  2. Interrompa o aplicativo pressionando Ctrl + C.

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

    gsutil mb gs://$DEVSHELL_PROJECT_ID-media

    É possível criar um bucket com o comando gsutil mb, transmitindo o nome do 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: lembre-se que o aplicativo usa as variáveis de ambiente para fazer a configuração. 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 4: adicione objetos ao Cloud Storage

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

Importante: atualize o código nas seções marcadas da seguinte maneira:

# TODO

# END TODO

Para maximizar seu aprendizado, revise o código, os comentários inline e a documentação da API relacionada.

Para mais informações sobre a documentação da 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.client.
  4. Crie um cliente do Cloud Storage.
  5. Crie uma referência para o bucket do Cloud Storage.

quiz/gcp/storage.py

# TODO: Confira o nome do bucket na # variável de ambiente GCLOUD_BUCKET bucket_name = os.getenv('GCLOUD_BUCKET') # END TODO # TODO: Importe o módulo de armazenamento from google.cloud import storage # END TODO # TODO: Crie um cliente para o Cloud Storage storage_client = storage.Client() # END TODO # TODO: Use o cliente para encontrar o bucket do Cloud Storage bucket = storage_client.get_bucket(bucket_name) # END TODO

Escreva 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): # TODO: Use o bucket para recuperar um objeto blob blob = bucket.blob(image_file.filename) # END TODO # TODO: Use o blob para fazer upload do arquivo blob.upload_from_string( image_file.read(), content_type=image_file.content_type) # END TODO # TODO: Torne o objeto público if public: blob.make_public() # END TODO # TODO: Modifique para encontrar o URL público do blob 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(...). Use o cliente de armazenamento para fazer upload de um arquivo e 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(...). Escreva um teste "if" para ver se o 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: Importe o módulo de importação 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 o cliente de armazenamento para fazer upload do arquivo # O segundo argumento é um booleano public_url = storage.upload_file( image_file, public ) # END TODO # TODO: Returne o URL público # do objeto 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: Se houver um arquivo de imagem, faça o upload # E atribua o resultado a um novo repositório de dados # propriedade imageUrl # Se não houver, atribua uma string vazia 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.

Execute o aplicativo e crie um objeto do Cloud Storage

  1. Salve os arquivos ...gcp/storage.py e ...webapp/questions.py e volte ao comando do Cloud Shell.
  2. Volte ao Cloud Shell para executar o aplicativo:
python run_server.py
  1. Faça o download de um arquivo de imagem no armazenamento do Google e salve no computador.

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

  3. Clique no link Create Question.

  4. Preencha o formulário com os valores a seguir e clique em Save.

    Campo do formulário Valor
    Author Your name
    Quiz Google Cloud Platform
    Title Which product does this logo relate to?
    Image Upload the Google_Cloud_Storage_logo.png file you previously downloaded
    Answer 1 App Engine
    Answer 2 Cloud Storage (Select the Answer 2 radio button)
    Answer 3 Compute Engine
    Answer 4 Container 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 vai aparecer.

Faça upload de objetos para o bucket.

Execute o aplicativo cliente e teste 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ê verá que a imagem foi formatada no aplicativo da Web no lado do cliente.

Parabéns!

Com isso, concluímos o laboratório "Desenvolvimento de aplicativos: como armazenar arquivos de imagem e vídeo no Cloud Storage – Python". Você usou o Cloud Storage no armazenamento e na recuperação de dados.

Próximas etapas / Saiba mais

Manual atualizado em 24 de janeiro de 2025

Laboratório testado em 24 de janeiro de 2025

Copyright 2025 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas 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

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

Para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.