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

Logotipo dos 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 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. Ícone do menu de navegação e campo de pesquisa

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.

  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.

O botão "Abrir editor".

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.

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.

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

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

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.