Introdução ao Armazenamento do Azure em C#
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.

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

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.

"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.
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.
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#).
