Ir para o conteúdo do rodapé
Iron Academy Logo
Integração de banco de dados em C#

Introdução ao Armazenamento do Azure em C#

Tim Corey
1h 05m 37s

O Azure Storage é um serviço essencial oferecido pelo Microsoft Azure e, quando combinado com as tecnologias .NET , torna-se uma ferramenta poderosa para armazenar e recuperar arquivos na nuvem. Em seu tutorial detalhado " Introdução ao Armazenamento do Azure em C# ", Tim Corey guia os espectadores pelos passos exatos de configuração de uma conta de Armazenamento do Azure, configuração do Armazenamento de Blobs do Azure e integração em um projeto ASP.NET Core MVC em C#.

Neste artigo, acompanharemos de perto o vídeo de Tim para explorar cada etapa do processo, discutindo os principais conceitos e terminologias usados no desenvolvimento em Azure no mundo real.

Preços e planejamento do Azure Storage

Tim começa explicando a eficiência financeira de usar o Armazenamento do Azure em um aplicativo C#. Quer você esteja usando um contêiner de blobs para armazenar arquivos de texto, imagens ou dados binários, o custo permanece mínimo. Ele apresenta a Calculadora de Preços do Azure para estimar os custos com base em recursos selecionados, como níveis de desempenho, configurações de redundância e operações de dados.

Tim escolhe o Armazenamento de Blobs em Blocos na versão 2 de uso geral no portal do Azure e configura a camada de acesso frequente para arquivos acessados ​​com frequência. Ele garante que a conta de armazenamento esteja utilizando armazenamento localmente redundante (LRS) para minimizar custos, mantendo a segurança.

"Para um aplicativo de demonstração que armazena 1 GB de dados e realiza algumas milhares de operações, o custo cai para 13 centavos por mês", explica Tim.

Criando uma conta de armazenamento do Azure

No portal do Azure, Tim demonstra como criar um novo grupo de recursos e uma conta de armazenamento do Azure correspondente. As convenções de nomenclatura são rigorosas: os nomes das contas de armazenamento devem ser únicos, em letras minúsculas e não conter hífens.

Durante a configuração, ele desativa o armazenamento georredundante para economizar custos, uma dica crucial para desenvolvedores que trabalham em protótipos ou ambientes locais. Ele também permite o acesso anônimo no nível do contêiner, mas apenas para fins de demonstração, alertando que ambientes de produção reais exigem acesso seguro.

Intro Azure Storage Csharp 1 related to Criando uma conta de armazenamento do Azure

Tim também aborda as chaves de acesso, a string de conexão e o nome da conta de armazenamento — todos essenciais quando seu projeto C# se conecta a recursos do Azure.

Entendendo o Armazenamento de Blobs do Azure

Tim explica como um contêiner de blobs é usado para organizar dados em sua conta de armazenamento do Azure. Ele evita criar um novo contêiner manualmente pelo portal e, em vez disso, planeja gerá-lo em código usando o SDK do Azure for .NET.

Ele explica que as chaves de acesso seguro e a string de conexão — que podem ser visualizadas nas configurações de segurança da conta — serão usadas no aplicativo para autenticar com a biblioteca cliente de armazenamento.

Iniciando um projeto ASP.NET Core

Tim cria uma aplicação web .NET 9 MVC usando o Visual Studio. Embora qualquer tipo de interface de usuário, como Razor Pages ou Blazor Server, pudesse ser usado, ele escolheu MVC para demonstração.

Às 19h35, no arquivo secrets.json, ele armazena credenciais confidenciais de forma segura:

  • string de conexão

  • chave da conta de armazenamento

  • nome do contêiner

  • nome da conta de armazenamento

Intro Azure Storage Csharp 2 related to Iniciando um projeto ASP.NET Core

Tim explica que o arquivo appsettings.json não deve conter segredos, pois ele é incluído nos repositórios de código-fonte. Em vez disso, os segredos devem ser armazenados localmente usando Segredos do Usuário, especialmente durante o desenvolvimento.

Instalando os pacotes NuGet necessários

Para interagir com o Armazenamento de Blobs do Azure, Tim instala o pacote NuGet Azure.Storage.Blobs. Ele aprecia a forma como a Microsoft modularizou os recursos usando o SDK do Azure, permitindo aplicações menores e mais fáceis de manter.

Intro Azure Storage Csharp 3 related to Instalando os pacotes NuGet necessários

"Em vez de incluir tudo na estrutura, agora você obtém exatamente o que precisa — como a biblioteca cliente do Azure Blob — via NuGet", destaca Tim.

Configurando o padrão de opções para o Armazenamento do Azure

Em seguida, Tim cria uma classe POCO (BlobStorageOptions) para corresponder às chaves em sua configuração. Ele usa o padrão de opções para vincular a configuração a objetos fortemente tipados, permitindo uma configuração centralizada e testável.

Essa configuração facilita para o aplicativo .NET usar a configuração do Azure de forma consistente em diferentes ambientes.

Implementando a lógica do serviço de armazenamento de blobs

Tim adiciona uma nova pasta chamada DataAccess e implementa uma classe chamada BlobStorage.cs. Internamente, ele injeta a configuração usando IOptions. e o armazena em uma instância privada.

Ele cria dois métodos assíncronos principais:

Lógica de upload de arquivos

O método UploadFileAsync:

  • Aceita um IFormFile do front-end MVC.

  • Cria um BlobContainerClient a partir do SDK do Armazenamento do Azure usando a cadeia de conexão e o nome do contêiner.

  • Verifica se já existe um contêiner ou cria um novo caso ele não exista.

  • Define a política de acesso como "Nenhum", garantindo que o contêiner não seja acessível publicamente.

  • Utiliza um objeto BlobClient para carregar o arquivo a partir de um fluxo.

Tim usa uma instrução using e uma chamada await para manipular o fluxo de arquivos de forma segura, evitando vazamentos de memória.

Lógica de Download de Arquivos

Em DownloadFileAsync, Tim:

  • Aceita um nome de arquivo em formato de string ou um URI blob completo.

  • Cria um novo BlobClient usando o URI e credenciais seguras.

  • Faz o download do arquivo usando DownloadStreamingAsync.

  • Envolve o fluxo em um FileContentResult para permitir downloads a partir do navegador.

Isso garante que os arquivos permaneçam seguros e só possam ser acessados ​​por meio do aplicativo, e não diretamente por meio de adivinhação de URL.

Registrando o Blob Storage com Injeção de Dependência

Tim define uma interface (IBlobStorage) para sua classe e a registra como Singleton no contêiner de injeção de dependência do .NET . Como a classe não mantém estado e usa apenas valores de configuração, o Singleton é a opção ideal.

Integração com o aplicativo MVC

O Controlador Doméstico foi modificado para usar o IBlobStorage. Contém:

  • Um método POST UploadFile que valida a entrada e chama UploadFileAsync.

  • Um método POST GetFile que verifica a URL e, em seguida, chama DownloadFileAsync.

Cada método interage com o cliente de armazenamento para lidar com arquivos blob de forma segura, seja durante o upload ou o download.

Interface de usuário Razor View para operações com arquivos

No arquivo Index.cshtml, Tim configura o seguinte:

  • Um formulário para enviar arquivos usando o tipo de entrada "file" e o estilo do Bootstrap.

  • Uma segunda forma de baixar um arquivo usando seu URI.

  • Tratamento de mensagens de erro para casos extremos, como arquivos ausentes ou URIs inválidos.

  • Uma seção de exibição que mostra o URI do blob gerado (https) após um upload bem-sucedido.

Tim também lida com erros usando uma Lista. Apresentá-los de forma clara na interface do usuário, mantendo os usuários informados sobre problemas como a ausência de seleção de arquivos.

Testando e verificando a segurança dos arquivos

Tim carrega um arquivo de texto e tenta acessar o URI diretamente no navegador — a operação falha, como esperado, devido à política de acesso "Nenhum".

Após alterar temporariamente o nível de acesso no portal do Azure, o arquivo poderá ser baixado por meio de um link direto. Mas ele prontamente reverte para "Privado", enfatizando como o Azure oferece controle preciso sobre a segurança.

Recomendações finais de Tim

Tim conclui lembrando aos desenvolvedores que o Microsoft Azure oferece muito valor mesmo com investimento mínimo. Com ferramentas como:

  • Pacotes NuGet

  • SDK do Azure

  • Visual Studio

  • Portal do Azure

  • Cadeias de conexão e chaves seguras

Você pode criar rapidamente uma solução de armazenamento pronta para produção usando C#. Quer esteja a trabalhar num sistema de grande escala ou num pequeno projeto de teste, o Armazenamento de Blobs do Azure é uma opção escalável e económica.

"Você paga apenas pelo que usa na nuvem — então peça somente o que precisa", enfatiza Tim.

Resumo

Desde a criação de uma conta de armazenamento e a configuração de contêineres de blobs até o gerenciamento seguro de uploads e downloads em um aplicativo MVC, Tim Corey fornece instruções detalhadas que abrangem todo o ciclo de vida do uso do Armazenamento do Azure com .NET.

Com este guia e o vídeo do Tim, você pode começar a usar o Armazenamento de Blobs do Azure com confiança, mantendo o controle, minimizando custos e seguindo as melhores práticas de desenvolvimento em nuvem.

Confira o vídeo completo dele para obter mais esclarecimentos e visite o canal dele no YouTube para mais conteúdo informativo sobre armazenamento do Azure (C#).

Hero Worlddot related to Introdução ao Armazenamento do Azure em C#
Hero Affiliate related to Introdução ao Armazenamento do Azure em C#

Ganhe mais compartilhando o que você ama.

Você cria conteúdo para desenvolvedores que trabalham com .NET, C#, Java, Python ou Node.js? Transforme sua expertise em renda extra!

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim