Guia de Início Rápido: biblioteca de clientes do Armazenamento de Blobs do Azure para .NET
Artigo
Observação
A opção Criar do zero orienta você passo a passo pelo processo de criação de um projeto, instalação de pacotes, escrita do código e execução de um aplicativo de console básico. Essa abordagem é recomendada se você deseja entender todos os detalhes envolvidos na criação de um aplicativo que se conecta ao Armazenamento de Blobs do Azure. Caso prefira automatizar as tarefas de implantação e começar com um projeto concluído, escolha Iniciar com um modelo.
Observação
A opção Iniciar com um modelo usa o Azure Developer CLI para automatizar tarefas de implantação e iniciar com um projeto concluído. Essa abordagem é recomendada se você deseja explorar o código o mais rápido possível sem passar pelas tarefas de instalação. Caso prefira obter instruções passo a passo para criar o aplicativo, escolha Criar do zero.
Introdução à biblioteca de clientes do Armazenamento de Blobs do Azure para .NET. O Armazenamento de Blobs do Azure é a solução de armazenamento de objetos da Microsoft para a nuvem e é otimizado para armazenar grandes quantidades de dados não estruturados.
Neste artigo, você vai seguir as etapas para instalar o pacote e testar o código de exemplo para tarefas básicas.
Neste artigo, você usará o Azure Developer CLI para implantar recursos do Azure e executar um aplicativo de console concluído com apenas alguns comandos.
Na parte superior do Visual Studio, navegue até Arquivo>Novo>Projeto...
Na janela da caixa de diálogo, insira o aplicativo de console na caixa de pesquisa do modelo do projeto e selecione o primeiro resultado. Escolha Avançar na parte inferior do diálogo.
Em Nome do Projeto, insira BlobQuickstart. Deixe os outros campos com os valores padrão e selecione Avançar.
No caso do Framework, verifique se a última versão instalada do .NET está selecionada. Em seguida, escolha Criar. O novo projeto será aberto no ambiente do Visual Studio.
Em uma janela do console (como cmd, PowerShell ou Bash), use o comando dotnet new para criar um novo aplicativo do console com o nome BlobQuickstart. Esse comando cria um projeto simples C# "Olá, Mundo" com um arquivo de origem único: Program.cs.
CLI do .NET
dotnetnew console -n BlobQuickstart
Alterne para o diretório BlobQuickstart recém-criado.
Console
cd BlobQuickstart
Abra o projeto no editor de código desejado. Para abrir o projeto no:
Visual Studio, localize e clique duas vezes no arquivo BlobQuickStart.csproj.
Execute o seguinte comando no Visual Studio Code:
Bash
code .
Instalar o pacote
Para interagir com o Armazenamento de Blobs do Azure, instale a biblioteca de clientes do Armazenamento de Blobs do Azure para .NET.
Agora que a origem do pacote é atualizada, execute o comando para instalar o pacote.
Configurar o código do aplicativo
Substitua o código inicial no arquivo Program.cs para que ele corresponda ao exemplo a seguir, que inclui as instruções necessárias using para este exercício.
C#
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System;
using System.IO;
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
Com o Azure Developer CLI instalado, você pode criar uma conta de armazenamento e executar o código de exemplo com apenas alguns comandos. Execute o projeto em seu ambiente de desenvolvimento local ou em um DevContainer.
Inicializar o modelo do Azure Developer CLI e implantar recursos
Em um diretório vazio, siga estas etapas para inicializar o modelo azd, provisionar recursos do Azure e começar a usar o código:
Clone os ativos do repositório de início rápido do GitHub e inicialize o modelo localmente:
Você será solicitado a dar as seguintes informações:
Nome do ambiente: esse valor é usado como um prefixo para todos os recursos do Azure criados pelo Azure Developer CLI. O nome precisa ser exclusivo em todas as assinaturas do Azure e ter entre 3 e 24 caracteres. O nome pode conter apenas números e letras minúsculas.
Faça logon no Azure:
Console
azd auth login
Provisione e implante os recursos no Azure:
Console
azd up
Você será solicitado a dar as seguintes informações:
Assinatura: a assinatura do Azure na qual seus recursos estão implantados.
Localização: a região do Azure em que os recursos estão implantados.
A implantação pode levar alguns minutos para ser concluída. A saída do comando azd up inclui o nome da conta de armazenamento recém-criada, que você precisará mais tarde para executar o código.
Execute o código de exemplo
Neste ponto, os recursos são implantados no Azure e o projeto está pronto para ser executado. Siga estas etapas para atualizar o nome da conta de armazenamento no código e executar o exemplo de aplicativo de console:
Atualizar o nome da conta de armazenamento: navegue até o diretório src e edite Program.cs. Localize o espaço reservado <storage-account-name> e substitua-o pelo nome real da conta de armazenamento criada pelo comando azd up. Salve as alterações.
Executar o projeto: se você estiver usando o Visual Studio, pressione F5 para compilar e executar o código e interagir com o aplicativo de console. Se você estiver usando a CLI do .NET, navegue até o diretório do aplicativo, compile o projeto usando dotnet build e execute o aplicativo usando o dotnet run.
Observar a saída: esse aplicativo cria um arquivo de teste na pasta de dados local e o carrega em um contêiner na conta de armazenamento. Em seguida, o exemplo lista os blobs no contêiner e baixa o arquivo com um novo nome para que você possa comparar os arquivos novos e antigos.
Para saber mais sobre como o código de exemplo funciona, confira Exemplos de código.
Quando terminar de testar o código, confira a seção Limpar recursos para excluir os recursos criados pelo comando azd up.
Modelo de objeto
O Armazenamento de Blobs do Azure é otimizado para armazenar grandes quantidades de dados não estruturados. Os dados não estruturados não seguem uma definição nem um modelo de dados específico, como dados de texto ou binários. O Armazenamento de Blobs oferece três tipos de recursos:
A conta de armazenamento
Um contêiner na conta de armazenamento
Um blob no contêiner
O diagrama a seguir mostra a relação entre esses recursos.
Use as seguintes classes .NET para interagir com esses recursos:
BlobServiceClient: a classe BlobServiceClient permite manipular os recursos do Armazenamento do Azure e os contêineres do blob.
BlobContainerClient: a classe BlobContainerClient permite manipular os contêineres do Armazenamento do Azure e seus blobs.
BlobClient: a classe BlobClient permite manipular os blobs do Armazenamento do Azure.
Exemplos de código
Os snippets de código de exemplo das próximas seções demonstram como executar as seguintes tarefas com a biblioteca de clientes do Armazenamento de Blobs do Azure para .NET:
Verifique se você instalou os pacotes NuGet corretos e adicionou as instruções using necessárias para que os exemplos de código funcionem, conforme descrito na seção de configuração.
Observação
O modelo do Azure Developer CLI inclui um projeto com um código de exemplo já implementado. Os exemplos a seguir fornecem detalhes de cada parte do código de exemplo. O modelo implementa o método de autenticação sem senha recomendado, conforme descrito na seção Autenticar-se no Azure. O método de cadeia de conexão é mostrado como uma alternativa, mas não é usado no modelo e não é recomendado para o código de produção.
Autenticar-se no Azure e autorizar o acesso a dados de blob
As solicitações de aplicativo para o Armazenamento de Blobs do Azure devem ser autorizadas. O uso da classe DefaultAzureCredential fornecida pela biblioteca de clientes de identidade do Azure é a abordagem recomendada para implementar conexões sem senha com os serviços do Azure no código, incluindo o Armazenamento de Blobs.
Você também pode autorizar solicitações para o Armazenamento de Blobs do Azure usando a chave de acesso da conta. No entanto, essa abordagem deve ser usada com cautela. Os desenvolvedores devem ser diligentes para nunca expor as chaves de acesso em um local não seguro. Qualquer pessoa que tenha a chave de acesso pode autorizar solicitações na conta de armazenamento e efetivamente tem acesso a todos os dados. DefaultAzureCredential oferece benefícios aprimorados de gerenciamento e segurança sobre a chave de conta para permitir a autenticação sem senha. Ambas as opções são demonstradas no exemplo a seguir.
DefaultAzureCredential é uma classe fornecida pela biblioteca de clientes do Azure Identity para .NET. Para saber mais sobre ela, consulte a Visão geral DefaultAzureCredential. DefaultAzureCredential dá suporte a vários métodos de autenticação e determina quais métodos devem ser usados no runtime. Essa abordagem permite que seu aplicativo use diferentes métodos de autenticação em ambientes diferentes (local versus produção) sem implementar código específico do ambiente.
Por exemplo, o aplicativo pode autenticar usando suas credenciais de entrada do Visual Studio no desenvolvimento local. Em seguida, o aplicativo pode usar uma identidade gerenciada após ser implantado no Azure. Nenhuma alteração de código é necessária para essa transição.
Atribuir funções à sua conta de usuário do Microsoft Entra
Ao desenvolver localmente, verifique se a conta de usuário que está acessando os dados de blob tem as permissões corretas. Você precisará do Colaborador de Dados do Blob de Armazenamento para ler e gravar os dados de blob. Para atribuir essa função a si mesmo, você precisará receber a atribuição da função Administrador de Acesso do Usuário ou de outra função que inclua a ação Microsoft.Authorization/roleAssignments/write. É possível atribuir funções RBAC do Azure a um usuário usando o portal do Azure, a CLI do Azure ou o Azure PowerShell. Você pode saber mais sobre os escopos disponíveis para atribuições de função na página de visão geral do escopo.
Nesse cenário, você atribuirá permissões à sua conta de usuário, no escopo da conta de armazenamento, para seguir o Princípio do Privilégio Mínimo. Essa prática fornece aos usuários apenas as permissões mínimas necessárias e cria ambientes de produção mais seguros.
O exemplo a seguir atribuirá a função de Colaborador de Dados do Blob de Armazenamento à sua conta de usuário, que fornece acesso de leitura e gravação aos dados de blob na sua conta de armazenamento.
Importante
Na maioria dos casos, levará um ou dois minutos para a atribuição de função se propagar no Azure, mas em casos raros pode levar até oito minutos. Se você receber erros de autenticação ao executar o código pela primeira vez, aguarde alguns instantes e tente novamente.
No portal do Azure, localize sua conta de armazenamento usando a barra de pesquisa principal ou a navegação à esquerda.
Na página de visão geral da conta de armazenamento, selecione Controle de acesso (IAM) no menu à esquerda.
Na página Controle de acesso (IAM), selecione a guia Atribuições de função.
Selecione + Adicionar no menu superior e, em seguida, Adicionar atribuição de função no menu suspenso resultante.
Use a caixa de pesquisa para filtrar os resultados para a função desejada. Para este exemplo, pesquise o Colaborador de Dados do Blob de Armazenamento e selecione o resultado correspondente e, em seguida, escolha Avançar.
Em Atribuir acesso a, selecione Usuário, grupo ou entidade de serviço e, em seguida, selecione + Selecionar membros.
No diálogo, pesquise seu nome de usuário do Microsoft Entra (geralmente seu endereço de email user@domain) e escolha Selecionar na parte inferior do diálogo.
Selecione Revisar + atribuir para ir para a página final e, em seguida, Revisar + atribuir novamente para concluir o processo.
Para atribuir uma função no nível do recurso usando a CLI do Azure, primeiro você deve recuperar a ID do recurso usando o comando az storage account show. É possível filtrar as propriedades de saída usando o parâmetro --query.
CLI do Azure
az storage account show --resource-group'<your-resource-group-name>'--name'<your-storage-account-name>'--query id
Copie a saída Id do comando anterior. Em seguida, você pode atribuir funções usando o comando az role da CLI do Azure.
CLI do Azure
az role assignment create --assignee"<user@domain>" \
--role"Storage Blob Data Contributor" \
--scope"<your-resource-id>"
Para atribuir uma função no nível do recurso usando o Azure PowerShell, primeiro você precisa recuperar a ID do recurso usando o comando Get-AzResource.
Entrar e conectar o código do aplicativo ao Azure usando DefaultAzureCredential
É possível autorizar o acesso aos dados pela conta de armazenamento usando as seguintes etapas:
Para desenvolvimento local, você deve estar autenticado com a mesma conta do Microsoft Entra à qual a função foi atribuída. Você pode autenticar por meio de ferramentas de desenvolvimento populares, como a CLI do Azure ou o Azure PowerShell. As ferramentas de desenvolvimento com as quais você pode autenticar variam entre os idiomas.
Em Gerenciador de Soluções, clique com o botão direito do mouse no nó Dependências do projeto. Selecione Gerenciar Pacotes NuGet.
Na janela resultante, pesquise por Azure.Identity. Selecione o resultado apropriado e, em seguida, Instalar.
CLI do .NET
dotnetadd package Azure.Identity
Atualize o código Program.cs para que ele corresponda ao exemplo a seguir. Quando o código for executado na estação de trabalho local durante o desenvolvimento, ele usará as credenciais do desenvolvedor da ferramenta priorizada na qual você está conectado para autenticação no Azure, como a CLI do Azure ou o Visual Studio.
C#
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System;
using System.IO;
using Azure.Identity;
// TODO: Replace <storage-account-name> with your actual storage account namevar blobServiceClient = new BlobServiceClient(
new Uri("https://<storage-account-name>.blob.core.windows.net"),
new DefaultAzureCredential());
Atualize o nome da conta de armazenamento no URI do BlobServiceClient. O nome da conta de armazenamento pode ser encontrado na página de visão geral do portal do Azure.
Observação
Quando implantado no Azure, esse mesmo código pode ser usado para autorizar solicitações para o Armazenamento do Azure de um aplicativo em execução no Azure. No entanto, você precisará habilitar a identidade gerenciada em seu aplicativo no Azure. Em seguida, configure a conta de armazenamento para permitir que essa identidade gerenciada se conecte. Para obter instruções detalhadas sobre como configurar essa conexão entre os serviços do Azure, consulte o tutorial Autenticação de aplicativos hospedados no Azure.
Uma cadeia de conexão inclui a chave de acesso da conta de armazenamento e a utiliza para autorizar solicitações. Sempre tenha cuidado para nunca expor as chaves em um local não seguro.
Observação
Para autorizar o acesso a dados com a chave de acesso da conta de armazenamento, você precisará de permissões para a seguinte ação do RBAC do Azure: Microsoft.Storage/storageAccounts/listkeys/action. A função interna de privilégio mínimo com permissões para essa ação é a função de Leitor e Acesso a Dados, mas qualquer função que inclua essa ação funcionará.
No painel do menu da conta de armazenamento, em Segurança + rede, selecione Chaves de acesso. Aqui, você pode ver as chaves de acesso da conta, bem como a cadeia de conexão completa para cada chave.
No painel Chaves de acesso, selecione Mostrar chaves.
Na seção key1, localize o valor Cadeia de conexão. Selecione o ícone Copiar para a área de transferência para copiar a cadeia de conexão. Você adicionará o valor da cadeia de conexão a uma variável de ambiente na próxima seção.
Depois de copiar a cadeia de conexão, grave em uma nova variável de ambiente no computador local que executa o aplicativo. Para definir a variável de ambiente, abra uma janela de console e siga as instruções do seu sistema operacional. Substitua <yourconnectionstring> pela cadeia de conexão real.
Após adicionar a variável de ambiente no Windows, é necessário iniciar uma nova instância da janela de comando. No caso do Visual Studio do Windows, ele pode precisar ser reiniciado depois da criação da variável de ambiente para que a alteração seja detectada.
O código abaixo recupera a cadeia de conexão da conta de armazenamento da variável de ambiente criada anteriormente e usa a cadeia de conexão para construir um objeto de cliente de serviço.
Adicione o seguinte código ao final do arquivo Program.cs:
C#
// Retrieve the connection string for use with the application. string connectionString = Environment.GetEnvironmentVariable("AZURE_STORAGE_CONNECTION_STRING");
// Create a BlobServiceClient object var blobServiceClient = new BlobServiceClient(connectionString);
Importante
A chave de acesso da conta deve ser usada com cautela. Se a chave de acesso da conta for perdida ou colocada acidentalmente em um local inseguro, o serviço poderá ficar vulnerável. Qualquer pessoa que tenha a chave de acesso pode autorizar solicitações na conta de armazenamento e efetivamente tem acesso a todos os dados. DefaultAzureCredential fornece recursos e benefícios de segurança avançados e é a abordagem recomendada para gerenciar a autorização para os serviços do Azure.
Criar um contêiner
Crie um contêiner em sua conta de armazenamento chamando o método CreateBlobContainerAsync no objeto blobServiceClient. Neste exemplo, o código acrescenta um valor GUID ao nome do contêiner para garantir que ele seja exclusivo.
Adicione o seguinte código ao final do arquivo Program.cs:
C#
// TODO: Replace <storage-account-name> with your actual storage account namevar blobServiceClient = new BlobServiceClient(
new Uri("https://<storage-account-name>.blob.core.windows.net"),
new DefaultAzureCredential());
//Create a unique name for the containerstring containerName = "quickstartblobs" + Guid.NewGuid().ToString();
// Create the container and return a container client object
BlobContainerClient containerClient = await blobServiceClient.CreateBlobContainerAsync(containerName);
Carregue um blob em um contêiner usando UploadAsync. O código de exemplo cria um arquivo de texto no diretório data local para carregá-lo no contêiner.
Adicione o seguinte código ao final do arquivo Program.cs:
C#
// Create a local file in the ./data/ directory for uploading and downloadingstring localPath = "data";
Directory.CreateDirectory(localPath);
string fileName = "quickstart" + Guid.NewGuid().ToString() + ".txt";
string localFilePath = Path.Combine(localPath, fileName);
// Write text to the fileawait File.WriteAllTextAsync(localFilePath, "Hello, World!");
// Get a reference to a blob
BlobClient blobClient = containerClient.GetBlobClient(fileName);
Console.WriteLine("Uploading to Blob storage as blob:\n\t {0}\n", blobClient.Uri);
// Upload data from the local file, overwrite the blob if it already existsawait blobClient.UploadAsync(localFilePath, true);
Para saber mais sobre o carregamento de blobs, e para explorar mais exemplos de código, confira Carregar um blob com .NET.
Listar os blobs de um contêiner
Liste os blobs no contêiner chamando o método GetBlobsAsync.
Adicione o seguinte código ao final do arquivo Program.cs:
C#
Console.WriteLine("Listing blobs...");
// List all blobs in the containerawaitforeach (BlobItem blobItem in containerClient.GetBlobsAsync())
{
Console.WriteLine("\t" + blobItem.Name);
}
Para saber mais sobre a listagem de blobs, e para explorar mais exemplos de código, confira Listagem de blobs com .NET.
Baixar um blob
Baixe o blob que criamos anteriormente chamando o método DownloadToAsync. O código de exemplo acrescenta a cadeia de caracteres “DOWNLOADED” ao nome do arquivo para que você possa ver os dois arquivos no sistema de arquivos local.
Adicione o seguinte código ao final do arquivo Program.cs:
C#
// Download the blob to a local file// Append the string "DOWNLOADED" before the .txt extension // so you can compare the files in the data directorystring downloadFilePath = localFilePath.Replace(".txt", "DOWNLOADED.txt");
Console.WriteLine("\nDownloading blob to\n\t{0}\n", downloadFilePath);
// Download the blob's contents and save it to a fileawait blobClient.DownloadToAsync(downloadFilePath);
Para saber mais sobre o download de blobs, e para explorar mais exemplos de código, confira Baixar um blob com .NET.
Excluir um contêiner
O código a seguir limpa os recursos que o aplicativo criou excluindo o contêiner usando DeleteAsync. O código de exemplo também exclui os arquivos locais criados pelo aplicativo.
O aplicativo pausa a entrada do usuário chamando Console.ReadLine antes de excluir o blob, o contêiner e os arquivos locais. Essa é uma boa oportunidade de verificar se os recursos foram criados corretamente antes de serem excluídos.
Adicione o seguinte código ao final do arquivo Program.cs:
C#
// Clean up
Console.Write("Press any key to begin clean up");
Console.ReadLine();
Console.WriteLine("Deleting blob container...");
await containerClient.DeleteAsync();
Console.WriteLine("Deleting the local source and downloaded files...");
File.Delete(localFilePath);
File.Delete(downloadFilePath);
Console.WriteLine("Done");
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Identity;
// TODO: Replace <storage-account-name> with your actual storage account namevar blobServiceClient = new BlobServiceClient(
new Uri("https://<storage-account-name>.blob.core.windows.net"),
new DefaultAzureCredential());
//Create a unique name for the containerstring containerName = "quickstartblobs" + Guid.NewGuid().ToString();
// Create the container and return a container client object
BlobContainerClient containerClient = await blobServiceClient.CreateBlobContainerAsync(containerName);
// Create a local file in the ./data/ directory for uploading and downloadingstring localPath = "data";
Directory.CreateDirectory(localPath);
string fileName = "quickstart" + Guid.NewGuid().ToString() + ".txt";
string localFilePath = Path.Combine(localPath, fileName);
// Write text to the fileawait File.WriteAllTextAsync(localFilePath, "Hello, World!");
// Get a reference to a blob
BlobClient blobClient = containerClient.GetBlobClient(fileName);
Console.WriteLine("Uploading to Blob storage as blob:\n\t {0}\n", blobClient.Uri);
// Upload data from the local fileawait blobClient.UploadAsync(localFilePath, true);
Console.WriteLine("Listing blobs...");
// List all blobs in the containerawaitforeach (BlobItem blobItem in containerClient.GetBlobsAsync())
{
Console.WriteLine("\t" + blobItem.Name);
}
// Download the blob to a local file// Append the string "DOWNLOADED" before the .txt extension // so you can compare the files in the data directorystring downloadFilePath = localFilePath.Replace(".txt", "DOWNLOADED.txt");
Console.WriteLine("\nDownloading blob to\n\t{0}\n", downloadFilePath);
// Download the blob's contents and save it to a fileawait blobClient.DownloadToAsync(downloadFilePath);
// Clean up
Console.Write("Press any key to begin clean up");
Console.ReadLine();
Console.WriteLine("Deleting blob container...");
await containerClient.DeleteAsync();
Console.WriteLine("Deleting the local source and downloaded files...");
File.Delete(localFilePath);
File.Delete(downloadFilePath);
Console.WriteLine("Done");
C#
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
// TODO: Replace <storage-account-name> with your actual storage account namevar blobServiceClient = new BlobServiceClient("<storage-account-connection-string>");
//Create a unique name for the containerstring containerName = "quickstartblobs" + Guid.NewGuid().ToString();
// Create the container and return a container client object
BlobContainerClient containerClient = await blobServiceClient.CreateBlobContainerAsync(containerName);
// Create a local file in the ./data/ directory for uploading and downloadingstring localPath = "data";
Directory.CreateDirectory(localPath);
string fileName = "quickstart" + Guid.NewGuid().ToString() + ".txt";
string localFilePath = Path.Combine(localPath, fileName);
// Write text to the fileawait File.WriteAllTextAsync(localFilePath, "Hello, World!");
// Get a reference to a blob
BlobClient blobClient = containerClient.GetBlobClient(fileName);
Console.WriteLine("Uploading to Blob storage as blob:\n\t {0}\n", blobClient.Uri);
// Upload data from the local fileawait blobClient.UploadAsync(localFilePath, true);
Console.WriteLine("Listing blobs...");
// List all blobs in the containerawaitforeach (BlobItem blobItem in containerClient.GetBlobsAsync())
{
Console.WriteLine("\t" + blobItem.Name);
}
// Download the blob to a local file// Append the string "DOWNLOADED" before the .txt extension // so you can compare the files in the data directorystring downloadFilePath = localFilePath.Replace(".txt", "DOWNLOADED.txt");
Console.WriteLine("\nDownloading blob to\n\t{0}\n", downloadFilePath);
// Download the blob's contents and save it to a fileawait blobClient.DownloadToAsync(downloadFilePath);
// Clean up
Console.Write("Press any key to begin clean up");
Console.ReadLine();
Console.WriteLine("Deleting blob container...");
await containerClient.DeleteAsync();
Console.WriteLine("Deleting the local source and downloaded files...");
File.Delete(localFilePath);
File.Delete(downloadFilePath);
Console.WriteLine("Done");
Executar o código
Este aplicativo cria um arquivo de teste na pasta dados local e o carrega no Armazenamento de Blobs. Em seguida, o exemplo lista os blobs no contêiner e baixa o arquivo com um novo nome para que você possa comparar os arquivos novos e antigos.
Se você estiver usando o Visual Studio, pressione F5 para criar e executar o código e interagir com o aplicativo de console. Se você estiver usando a CLI do .NET, navegue até seu diretório de aplicativo e compile e execute o aplicativo.
Console
dotnet build
Console
dotnet run
A saída do aplicativo é semelhante ao seguinte exemplo (os valores do GUID foram omitidos para facilitar a leitura):
Saída
Azure Blob Storage - .NET quickstart sample
Uploading to Blob storage as blob:
https://mystorageacct.blob.core.windows.net/quickstartblobsGUID/quickstartGUID.txt
Listing blobs...
quickstartGUID.txt
Downloading blob to
./data/quickstartGUIDDOWNLOADED.txt
Press any key to begin clean up
Deleting blob container...
Deleting the local source and downloaded files...
Done
Antes de iniciar o processo de limpeza, verifique se os dois arquivos estão na pasta data. Você pode abri-los e observar se eles são idênticos.
Limpar os recursos
Depois de verificar os arquivos e concluir o teste, pressione a tecla ENTER para excluir os arquivos de teste e o contêiner criado na conta de armazenamento. Use também a CLI do Azure para excluir recursos.
Ao terminar o início rápido, limpe os recursos criados executando o seguinte comando:
Console
azd down
Você será solicitado a confirmar a exclusão dos recursos. Insira y para confirmar.
Crie soluções de ponta a ponta no Microsoft Azure para criar Funções do Azure, implementar e gerenciar aplicativos Web, desenvolver soluções utilizando o Armazenamento do Microsoft Azure e muito mais.
Exibir guias do desenvolvedor e código de exemplo para o Armazenamento do Microsoft Azure. Descubra exemplos de introdução a blobs, filas, tabelas e arquivos usando as bibliotecas do cliente de armazenamento do .NET.
Introdução ao desenvolvimento de um aplicativo .NET que funcione com o Armazenamento de Blobs do Azure. Este artigo ajuda você a configurar um projeto e autorizar o acesso a um ponto de extremidade do Armazenamento de Blobs do Azure.
Saiba como listar blobs na sua conta de armazenamento usando as bibliotecas de clientes do Armazenamento do Azure para .NET. Os exemplos de código mostram como listar blobs em uma listagem plana ou como listá-los hierarquicamente, como se eles fossem organizados em diretórios ou pastas.