arrow_back

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

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

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

Lab 1 hora universal_currency_alt 5 créditos show_chart Intermediário
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP185

Laboratórios autoguiados do Google Cloud

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 Start Lab

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o 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, 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 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.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

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, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você verá o seguinte:

    • O botão Abrir Console do Cloud
    • Tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações se forem necessárias
  2. Clique em Abrir Console do Google. O laboratório ativa recursos e depois abre outra guia com a página Fazer login.

    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. Caso seja preciso, copie o Nome de usuário no painel Detalhes do laboratório e cole esse nome na caixa de diálogo Fazer login. Clique em Avançar.

  4. Copie a Senha no painel Detalhes do laboratório e a cole na caixa de diálogo Olá. Clique em Avançar.

    Importante: você precisa usar as credenciais do painel à esquerda. Não use suas credenciais do Google Cloud Ensina. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  5. 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 GCP vai ser aberto nesta guia.

Observação: para ver uma lista dos produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo. Ícone do menu de navegação

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 Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

Depois de se conectar, vai notar 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 YOUR_PROJECT_ID

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.

  2. A saída será parecida com esta:

Saída:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net 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_ID>

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: para conferir a documentação completa da gcloud, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.

Iniciar o editor de código do Cloud Shell

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

O botão &quot;Abrir editor&quot;.

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. 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
  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 acessar o aplicativo, clique em Visualização na Web > Visualizar na porta 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.

Formulário para adicionar perguntas, em que o botão &quot;Choose File&quot; está destacado na categoria de imagem.

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.

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 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.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 Navegador, clique no bucket correto chamado <Project ID>-media.

O novo objeto chamado Google_Cloud_Storage_logo.png aparece.

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 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.

Termine a Quest

Este laboratório autoguiado faz parte das Quests Application Development: Python e Cloud Development. Uma Quest é uma série de laboratórios relacionados que formam um programa de aprendizado. Ao concluir uma Quest, você ganha um selo como reconhecimento da sua conquista. É possível publicar os selos e incluir um link para eles no seu currículo on-line ou nas redes sociais. Inscreva-se em qualquer Quest que tenha este laboratório para receber os créditos de conclusão na mesma hora. Consulte todas as Quests disponíveis no catálogo do Google Cloud Ensina.

Próximas etapas/Saiba mais

Confira outras formas de usar imagens e vídeos:

Saiba mais sobre o Python no Google Cloud.

Manual atualizado em 13 de outubro de 2023
Laboratório testado em 18 de outubro de 2023

Copyright 2024 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.