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
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
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 | "Username"}}}
Você também encontra o nome de usuário no painel Detalhes do Laboratório.
Clique em Próxima.
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.
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.
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.
Clique em Ativar o Cloud Shell na parte de cima do console do Google Cloud.
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.
(Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
Clique em Autorizar.
Saída:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
(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
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.
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:
cd ~/training-data-analyst/courses/developingapps/python/cloudstorage/start
Defina a região usando uma variável:
REGION={{{project_0.default_region | REGION}}}
sed -i s/us-central/$REGION/g prepare_environment.sh
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.
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
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 o enc-type, e há dois novos controles de formulário:
Um controle de upload de arquivo chamado image
Um campo oculto chamado imageUrl
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:
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
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
# 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
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.
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(...)
"""
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
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 o image_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
# 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
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.
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 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
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 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.
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.
Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
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.
No canto superior esquerdo da tela, clique em Começar o laboratório
Usar a navegação anônima
Copie o nome de usuário e a senha fornecidos para o laboratório
Clique em Abrir console no modo anônimo
Fazer login no console
Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
Aceite os termos e pule a página de recursos de recuperação
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
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.
Neste laboratório, você adicionará imagens e vídeos a um aplicativo e armazenará arquivos como objetos em um bucket do Cloud Storage.
Duração:
Configuração: 0 minutos
·
Tempo de acesso: 60 minutos
·
Tempo para conclusão: 60 minutos