Utilizando Storage Blob Azure em ASP .NET Core - Grupo Viceri
Tags:InovaçãoTecnologiaTransformação Digital
Transformação Digital: os 5 maiores mitos que você precisa conhecer
vpratte
5 tecnologias que estão transformando o mercado de seguros
Tags:Cultura Viceri
Qualidade de vida no trabalho certificada pela Great Place to Work
Tags:Cultura Viceridesign sprint
Grupo Viceri: conheça o Código de Cultura da empresa
Equipe Viceri
Meu primeiro Startup Weekend — São Paulo 2018 — Terceiro Lugar!
Personal Branding: por que eu deveria me importar? — A importância da gestão da sua marca
Personal Branding: por que eu deveria me importar?—Mantendo sua essência e investindo em sua marca
Quando desenvolvemos uma API, muitas vezes precisamos fazer upload de arquivos, e não sabemos se estamos fazendo da melhor forma. Ficamos na dúvida de fazer um upload com um Base64 ou via Form, mas questionamos depois disso:
Onde vamos hospedar essa imagem?
Será em banco de dados?
Como vai ficar a performance?
Colocamos em uma pasta no projeto?
E se meu projeto ficar grande?
Existem várias estratégias para isso, mas existe uma ferramenta ótima para reservar essas imagens, arquivos e etc. Um local que ficará fora de sua infra, e com isso ganhando agilidade e processamento para a sua aplicação. Essa ferramenta é o Storage Blog do Azure.
Utilizando essa ferramenta, hospedamos todas as imagens, arquivos e etc, neste serviço do Azure.
O primeiro passo é criar e configurar o storage em sua conta no Azure. Para isso, vamos utilizar o Cloud Shell do Azure. Ao lado direito superior de sua tela, existe o ícone do Cloud Shell.
Ícone do Cloud Shell
Ao clicar, irá abrir esse console:
Console Cloud Shell
Para a criação do storage, primeiramente precisamos criar um grupo de recursos de controle do storage. Utilize esse comando:
No exemplo eu criei um grupo de recursos de nome StorageTeste.
Grupo de recursos criado no Azure
Depois disso, precisamos criar uma conta de armazenamento para o storage. Utilize esse comando:
az storage account create –name [nome do storage ]\
–location brazilsouth –resource-group [nome do seu recurso]\
–kind BlobStorage \
–access-tier Hot
No exemplo eu criei uma conta de armazenamento storagetesteexemplo.
Conta de armazenamento criada. Dentro desta conta de armazenamento, vamos criar um container para o armazenamento das imagens. Esse container vai se chamar image.
Criação do container
Criação do container image
Agora vamos criar uma API que irá receber uma imagem via request e fazer o armazenamento do mesmo neste storage que criamos dentro do Azure.
Vamos adicionar as seguintes referências do NUGET:
A referência WindowsAzure.Storage será para fazer o Upload da imagem no storage do Azure. Criei na estrutura da API, duas pastas com seus objetos conforme imagem abaixo:
Adicionei as classes:
StorageConfig.cs: classe onde receberá os dados da conta de armazenamento do Azure.
StorageHelper.cs; será a classe responsável para a comunicação e upload da imagem ao storage do Azure
JsonImage: será uma entidade de retorno da url da imagem no storage
Na classe StorageHelper.cs, existe o método:
UploadFileToStorage
Método que irá fazer o upload no storage
Agora preciso criar a conexão da minha aplicação com o Azure. Para isso, existe na conta de armazenamento do Azure chaves de conexão do serviço que ficam armazenadas nas configurações da conta, na opção Chaves de acesso.
Crie no arquivo de configuração appsettings.json, com as configurações de chaves de acesso.
Configuração da chave de acesso
Edite seu arquivo Startup.cs, para que ele leia do arquivo de configuração a sua chave de acesso.
Obtendo a chave do arquivo de configuração
Crie uma nova controller na API e adicione um método POST para o upload da imagem.
Método Post de upload de imagem
Rode sua aplicação e vamos testar usando o Postman!
Upload de imagem no postman
Adicione a imagem, como se fosse um site fazendo o upload. Na chave, coloque o nome "file", pois é o mesmo nome do parâmetro do método na API e depois execute.
A API irá retornar sucesso com o retorno do endereço http da imagem:
https://cdn-images-1.medium.com/max/800/1*HplFSXrKgnT659NcH_epiA.png
Retorno do endereço da imagem no storage
Ao referenciar em um html, a imagem:
Imagem do storage
Bom, pessoal, espero que tenham gostado deste artigo! Uma ótima ferramenta para resolver uploads de arquivos em suas aplicações usando o Azure e .NET Core. Segue solution desse exemplo no meu GitHub: