Você pode se encontrar em necessidade de uma solução barata, porém eficiente, para armazenar seus arquivos em algum momento, mas onde encontrar essa solução? Dê uma olhada no armazenamento de Objeto Binário Grande (blob) da Microsoft Azure! O armazenamento de blob é um dos serviços de armazenamento da Azure e permite que você armazene grandes quantidades de arquivos de dados de texto e binários, conteúdo de streaming ou até mesmo conteúdo estático para distribuição.
Neste tutorial, você aprenderá como trabalhar com o armazenamento de blob na Azure, seguindo alguns exemplos comuns.
Continue lendo para começar!
Pré-requisitos
Este tutorial será uma demonstração prática. Se você deseja acompanhar, certifique-se de ter o seguinte instalado e disponível.
- O PowerShell 7 instalado.
- O Módulo PowerShell Az instalado no seu ambiente do PowerShell 7.
- O Executável AzCopy baixado e acessível.
- Uma Assinatura Azure – Existem várias maneiras de usar recursos específicos da Azure com pouco ou nenhum custo.
Construindo um Ambiente Azure
Antes de usar o armazenamento de blob para armazenar seus arquivos, você primeiro precisará importar os módulos do PowerShell Core, conectar-se à sua Assinatura Azure e construir um ambiente Azure.
1. Inicie o PowerShell 7 e execute o seguinte comando para importar os módulos que você usará para armazenar arquivos no armazenamento de blob.

2. Em seguida, faça login no seu inquilino do Azure Active Directory (AD), em seguida, execute o comando abaixo para concluir uma autenticação interativa no seu navegador da web, como mostrado abaixo.
Embora além do escopo deste tutorial, existem outros métodos de autenticação, como um Principal de Serviço ou usando um token de acesso.

Sempre verifique se o locatário e a assinatura mostrados após o login são aqueles que você pretende usar. Se necessário, você pode alterar seu contexto.
3. Agora execute o comando abaixo para criar um novo grupo de recursos chamado demo
, e acrescente cinco números aleatórios (Get-Random -Maximum 99999
). Grupos de recursos estão hierarquicamente abaixo de assinaturas e contêm recursos que permitem um gerenciamento mais granular.
Observe que a -Localização
do grupo de recursos está definida como Central US
para este exemplo. Quando o comando é concluído, ele armazena o resultado na variável $resourceGroup
.

4. Execute o comando abaixo para realizar as seguintes tarefas e criar um novo conta de armazenamento do Azure. Para este exemplo, a conta de armazenamento é chamada de storage e é anexada com cinco números aleatórios (Get-Random -Maximum 99999
). A variável $storageAccount
irá armazenar o objeto retornado após a conclusão do comando.

5. Execute o comando abaixo para executar algumas tarefas para a atribuição de Função do Azure AD:
- O valor
-SignInName
usa a conta com a qual você está atualmente conectado através da propriedadeUserID
retornada pelo cmdletGet-AzAccessToken
. - O valor de
-RoleDefinitionName
é a função integrada Contribuidor de Dados do Blob de Armazenamento que você está atribuindo. - O valor
-Scope
define o escopo da atribuição de função para a conta de armazenamento que você criou (armazenamento10029 mostrado abaixo) através da propriedadeId
da variável$storageAccount
.
Você sempre pode fornecer atribuições de função mais granulares para contêineres individuais conforme necessário.

6. Por fim, execute a série de comandos abaixo para criar um arquivo chamado temp.dat em seu sistema local. Você fará upload e download deste arquivo da conta de armazenamento nas seções seguintes para demonstrar como funciona o armazenamento de blob.

Carregando Arquivos via PowerShell
Agora que você construiu um ambiente Azure e criou um arquivo de exemplo, vamos começar a fazer o upload do arquivo para o armazenamento de blobs. O armazenamento de blobs funciona de maneira diferente dos sistemas de arquivos padrão. Cada arquivo no armazenamento de blobs é um objeto e é mantido dentro de contêineres.
A funcionalidade principal dos blobs é semelhante a outros sistemas de arquivos, mas existem casos de uso nos quais um ou outro poderia ser uma solução melhor. Os blobs podem até mesmo dar suporte a sistemas de arquivos virtuais (por exemplo, BlobFuse).
A Microsoft oferece vários métodos para fazer o upload de arquivos para suas contas de armazenamento via PowerShell, AzCopy e Portal Azure. Mas vamos fazer o upload do arquivo de exemplo (temp.dat) para o armazenamento de blobs via PowerShell para começar. O PowerShell oferece uma experiência consistente para trabalhar com suas Contas de Armazenamento do Azure.
As ações necessárias para realizar esta demonstração incorrerão em custos. Monitore seu consumo e exclua recursos quando não pretender mais utilizá-los.
Execute os comandos abaixo para criar um novo contêiner e fazer o upload do arquivo temp.dat ($file
) como um objeto. O contêiner é chamado demo neste exemplo, mas você pode nomeá-lo de forma diferente, conforme preferir.

Upload de Arquivos via AzCopy
Talvez você tenha casos de uso mais complexos, como sincronizar conteúdo ou copiar conteúdo entre diferentes contas em escala. Se for o caso, a ferramenta de linha de comando AzCopy é o que você precisa.
Execute os comandos abaixo para fazer login na sua inquilina do Azure e copiar seu arquivo local ($file
) para o endpoint URL do seu contêiner. Você está fazendo login na inquilina do Azure porque o AzCopy não tem conhecimento das credenciais que você está usando com o PowerShell.

Em vez de fazer o upload, talvez você queira baixar arquivos via AzCopy. Se for o caso, execute o comando abaixo para
copiar
os arquivos especificados (temp.dat
) do seu container para o diretório local atual:& .\azopy.exe copy "$($container.CloudBlobContainer.Uri.AbsoluteUri)/temp.dat" .\temp.dat
Enviando Arquivos via Portal do Azure
Se você preferir um método gráfico para enviar seus arquivos, então Azure Storage Explorer é seu amigo. O Azure Storage Explorer é um dos melhores métodos gráficos para gerenciar seu armazenamento de blobs. Você pode acessar o explorador de armazenamento a partir do recurso da conta de armazenamento no Portal do Azure.
1. Abra seu navegador da web favorito e acesse o seu explorador de armazenamento no Portal do Azure.
2. Clique no contêiner demo em CONTÊINERES DE BLOB, como mostrado abaixo, depois clique em Enviar para acessar a lâmina Enviar blob (painel direito).
3. Agora clique no ícone de pasta no painel Enviar blob para selecionar quais arquivos enviar (temp.dat).
4. Por fim, clique em Enviar (botão azul) para enviar seu arquivo.

Assim que o envio for concluído, você pode fechar a lâmina de Envio de blob e ver seu blob enviado, como na imagem abaixo.

Baixando Arquivos via Portal Azure
Similar ao envio de conteúdo para armazenamento de blobs, o Azure oferece suporte para baixar conteúdo de várias maneiras. Mas como você acabou de enviar um arquivo (temp.dat) via Portal Azure, vamos baixar o mesmo arquivo usando o Azure Storage Explorer no Portal Azure.
Selecione o arquivo (temp.dat) para baixar e clique no botão Baixar no Azure Storage Explorer, como mostrado abaixo. Ao fazer isso, uma nova caixa de diálogo será aberta para confirmar o download que você verá no próximo passo.

Agora clique no botão Clique aqui para iniciar o download para baixar os arquivos que você selecionou.

Baixando Arquivos via PowerShell
Assim como o envio de arquivos, você também tem a opção de baixar arquivos do armazenamento de blobs executando comandos no PowerShell. Com o PowerShell, você pode listar os objetos dentro de um contêiner e depois baixá-los.
Execute os comandos abaixo para listar todos os objetos em seu contêiner e baixar temp.dat para seu diretório local.

Se preferir usar links únicos de curta duração para baixar arquivos, você pode usar tokens de Assinatura de Acesso Compartilhado (SAS) para criar um link de download pré-autorizado. Esses tokens são únicos e privados, e você pode usá-los para verificar seu acesso.
Execute os comandos abaixo para criar um novo link de download para o arquivo (temp.dat
) que você deseja baixar. O link de download gerado expira após 10 segundos e irá baixar (Invoke-WebRequest $uri
) o conteúdo usando esse link para a variável $temp
.

Hospedando uma Página da Web na Internet Pública a partir do Armazenamento de Blob
Até este ponto, você viu casos de uso de download de arquivos por usuários autenticados. Mas você sabia que o armazenamento de blob pode fornecer uma excelente opção para conteúdo público também? Um exemplo é usar um blob para hospedar o conteúdo da sua página da web, o que você vai realizar nesta demonstração.
Mesmo que o conteúdo da sua página da web esteja criptografado tanto em trânsito quanto em repouso, qualquer pessoa pode acessar esses conteúdos se o acesso público estiver configurado.
Já que você está configurando um caso de uso diferente, você aproveitará um dos principais benefícios da nuvem pública em escala e elasticidade. Você pode provisionar uma nova conta de armazenamento para um caso de uso específico e limitar o risco de usar contêineres públicos.
1. Execute o comando abaixo para criar uma nova conta de armazenamento, assim como fez na etapa quatro da seção “Construindo um Ambiente Azure”. Mas desta vez, passe o objeto retornado para a variável $publicStorageAccount
.

Agora você tem uma conta de armazenamento dedicada para seu conteúdo público e pode configurá-la para hospedar conteúdo web estático com o seguinte comando.
2. Em seguida, execute o cmdlet Enable-AzStorageStaticWebsite
para configurar a conta de armazenamento ($publicStorageAccount
) para seu novo caso de uso. O -IndexDocument
define a página web padrão que você deseja apresentar aos usuários. O -Context
será a nova conta de armazenamento que acabou de criar.

3. Execute os comandos abaixo para criar um novo documento HTML em seu diretório atual e faça upload desse documento para o contêiner específico para hospedar conteúdo web. O tipo de conteúdo é definido como HTML (ContentType="text/html"
), para que os navegadores da web possam interpretar corretamente o documento.
Acessar o documento em um navegador web exibirá a mensagem Hello from <nome da conta de armazenamento>.

4. Agora execute o seguinte comando para obter a URL onde os usuários podem acessar seu conteúdo.

5. Por fim, abra a URL em seu navegador, você verá algo semelhante à captura de tela a seguir.

Limpeza de Recursos
Agora que você passou por testes desses novos conceitos usando armazenamento de blob, você vai querer limpar seus recursos. Por quê? Fazê-lo ajuda a manter sua assinatura limpa. Mais importante ainda, você interrompe a incidência de encargos adicionais.
Como todos os recursos que você usou neste tutorial estão em um único grupo de recursos, você pode limpar todos os recursos excluindo o grupo de recursos.
Nem sempre os recursos estarão contidos em um único grupo de recursos, o que ilustra por que o uso liberal de segmentação lógica pode ser benéfico, especialmente ao testar ou iterar com frequência.
Execute o cmdlet Remove-AzResourceGroup
abaixo, especificando a propriedade ResourceGroupName
da variável $resourceGroup
para excluir o grupo de recursos e todos os recursos dentro dele.

Conclusão
Neste tutorial, você abordou o envio e o download de arquivos para e de blobs no armazenamento em nuvem em diferentes plataformas. Você também aprendeu que é possível hospedar uma página da web a partir do armazenamento de blob que os usuários podem acessar publicamente.
Você pode fazer muito mais com armazenamento de blob e outros tipos de armazenamento, então como você construiria sobre esses conceitos? Talvez trabalhar com contas de armazenamento de arquivos, fornecer sistemas de arquivos sem servidor ou usar blobs de página para discos rígidos virtuais com máquinas virtuais do Azure?