Checkpoints
Create a bucket
/ 50
Upload objects to your bucket
/ 50
Desenvolvimento de apps: como armazenar arquivos de imagem e vídeo no Cloud Storage – Python
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 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).
- Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Como iniciar seu laboratório e fazer login no console do Google Cloud
-
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ê 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
-
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. -
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
{{{user_0.username | "Nome de usuário"}}} Você também encontra o Nome de usuário no painel Detalhes do laboratório.
-
Clique em Seguinte.
-
Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.
{{{user_0.password | "Senha"}}} Você também encontra a Senha no painel Detalhes do laboratório.
-
Clique em Seguinte.
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. -
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.
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.
- Clique em 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:
gcloud
é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.
- (Opcional) É possível listar o nome da conta ativa usando este comando:
-
Clique em Autorizar.
-
A saída será parecida com esta:
Saída:
- (Opcional) É possível listar o ID do projeto usando este comando:
Saída:
Exemplo de saí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
- No Cloud Shell, clique em Abrir editor para iniciar o editor de código.
- Execute o comando a seguir para configurar o ID do seu projeto, substituindo
YOUR-PROJECT-ID
pelo ID especificado:
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:
Configurar e executar o aplicativo de teste
-
Mude o diretório de trabalho:
cd ~/training-data-analyst/courses/developingapps/python/cloudstorage/start -
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
-
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
-
Para acessar o aplicativo, clique em Visualização na Web > Visualizar na porta 8080.
-
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.
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
-
Navegue até a pasta
/training-data-analyst/courses/developingapps/python/datastore/start
usando o painel do navegador de arquivos no lado esquerdo do editor. -
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 oenc-type
, e há dois novos controles de formulário:- Um controle de upload de arquivo chamado
image
- Um campo oculto chamado
imageUrl
- Um controle de upload de arquivo chamado
-
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.
-
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. -
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.
-
Volte para a linha de comando do Cloud Shell.
-
Interrompa o aplicativo pressionando Ctrl + C.
-
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
-
Para exportar o bucket do Cloud Storage como uma variável de ambiente com o nome
GCLOUD_BUCKET
, execute este comando:
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.
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
- No editor de código, vá para o início do arquivo
...quiz/gcp/storage.py
. - Confira o nome do bucket na variável de ambiente
GCLOUD_BUCKET
. - Importe o módulo de armazenamento do pacote
google.client
. - Crie um cliente do Cloud Storage.
- Crie uma referência para o bucket do Cloud Storage.
quiz/gcp/storage.py
Escreva o código para enviar um arquivo ao Cloud Storage
- Ainda em
storage.py
, na funçãoupload_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. - Crie uma referência para um objeto blob do Cloud Storage no bucket.
- Use o objeto blob para fazer upload da imagem.
- Torne o arquivo público.
- Retorne o URL público do blob.
quiz/gcp/storage.py - Função upload)file(...)
- Salve o arquivo
storage.py
.
Escreva o código para usar a funcionalidade do Cloud Storage
- No editor, vá para o início do arquivo
...quiz/webapp/questions.py
. - Modifique a instrução "import" para usar os clientes de armazenamento e de repositório de dados.
- 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. - Modifique a instrução "return" para retornar o URL público.
- Vá até a função
save_question(...)
. Escreva um teste "if" para ver se oimage_file
está presente. - Se estiver, chame a função
upload_file(...)
e atribua o URL público a uma propriedade de entidade chamada imageUrl. - Caso contrário, atribua uma string vazia à propriedade imageUrl da entidade.
quiz/webapp/questions.py
- Salve o arquivo
questions.py
.
Execute o aplicativo e crie um objeto do Cloud Storage
- Salve os arquivos
...gcp/storage.py
e...webapp/questions.py
e volte ao comando do Cloud Shell. - Volte ao Cloud Shell para executar o aplicativo:
-
Faça o download de um arquivo de imagem no armazenamento do Google e salve no computador.
-
No Cloud Shell, clique em Visualização na Web > Visualizar na porta 8080 para conferir o aplicativo de teste.
-
Clique no link Create Question.
-
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
-
Volte ao console do Cloud e acesse Menu de navegação > Cloud Storage.
-
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
-
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.
-
Volte à página inicial do aplicativo e clique no link Take Test.
-
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.