Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Neste artigo, você aprenderá a executar operações de sistema de arquivos no Data Lake Storage Gen1 usando o SDK do .NET. As operações do sistema de arquivos incluem a criação de pastas em uma conta do Data Lake Storage Gen1, upload de arquivos, download de arquivos, etc.
Para obter instruções sobre como fazer operações de gerenciamento de conta no Data Lake Storage Gen1 usando o SDK do .NET, consulte Operações de gerenciamento de conta no Data Lake Storage Gen1 usando o SDK do .NET.
Pré-requisitos
Visual Studio 2013 ou superior. As instruções neste artigo usam o Visual Studio 2019.
Uma assinatura do Azure. Veja Obter versão de avaliação gratuita do Azure.
Conta do Azure Data Lake Storage Gen1. Para obter instruções sobre como criar uma conta, consulte Introdução ao Azure Data Lake Storage Gen1.
Criar uma aplicação .NET
O exemplo de código disponível no GitHub orienta você pelo processo de criação de arquivos na loja, concatenação de arquivos, download de um arquivo e exclusão de alguns arquivos na loja. Esta seção do artigo orienta você pelas partes principais do código.
No Visual Studio, selecione o menu Arquivo , Novo e, em seguida , Projeto.
Escolha Aplicativo de Console (.NET Framework) e selecione Avançar.
Em Nome do projeto, digite
CreateADLApplicatione selecione Criar.Adicione os pacotes NuGet ao seu projeto.
Clique com o botão direito do rato no nome do projeto no Explorador de Soluções e clique em Gerir Pacotes NuGet.
Na guia Gerenciador de Pacotes NuGet , verifique se Origem do pacote está definida como nuget.org. Além disso, verifique se a caixa de seleção Incluir pré-lançamento está marcada.
Procure e instale os seguintes pacotes NuGet:
-
Microsoft.Azure.DataLake.Store- Este artigo usa v1.0.0. -
Microsoft.Rest.ClientRuntime.Azure.Authentication- Este artigo usa v2.3.1.
Feche o Gestor de Pacotes NuGet.
-
Abra Program.cs, elimine o código existente e, em seguida, inclua as seguintes instruções para adicionar referências aos espaços de nomes.
using System; using System.IO;using System.Threading; using System.Linq; using System.Text; using System.Collections.Generic; using System.Security.Cryptography.X509Certificates; // Required only if you're using an Azure AD application created with certificates using Microsoft.Rest; using Microsoft.Rest.Azure.Authentication; using Microsoft.Azure.DataLake.Store; using Microsoft.IdentityModel.Clients.ActiveDirectory;Declare as variáveis conforme mostrado abaixo e forneça os valores para os espaços reservados. Além disso, verifique se o caminho local e o nome do arquivo fornecidos aqui existem no computador.
namespace SdkSample { class Program { private static string _adlsg1AccountName = "<DATA-LAKE-STORAGE-GEN1-NAME>.azuredatalakestore.net"; } }
Nas seções restantes do artigo, você pode ver como usar os métodos .NET disponíveis para fazer operações como autenticação, upload de arquivos, etc.
Autenticação
- Para autenticação de usuário final para seu aplicativo, consulte Autenticação de usuário final com o Data Lake Storage Gen1 usando o SDK do .NET.
- Para a autenticação de serviço a serviço para a sua aplicação, consulte autenticação de serviço a serviço com o Data Lake Storage Gen1 utilizando o SDK do .NET.
Criar objeto de cliente
O trecho a seguir cria o objeto cliente do sistema de arquivos Data Lake Storage Gen1, que é usado para emitir solicitações para o serviço.
// Create client objects
AdlsClient client = AdlsClient.CreateClient(_adlsg1AccountName, adlCreds);
Criar um arquivo e diretório
Adicione o seguinte trecho ao seu aplicativo. Esse trecho adiciona um arquivo e qualquer diretório pai que não existe.
// Create a file - automatically creates any parent directories that don't exist
// The AdlsOutputStream preserves record boundaries - it does not break records while writing to the store
using (var stream = client.CreateFile(fileName, IfExists.Overwrite))
{
byte[] textByteArray = Encoding.UTF8.GetBytes("This is test data to write.\r\n");
stream.Write(textByteArray, 0, textByteArray.Length);
textByteArray = Encoding.UTF8.GetBytes("This is the second line.\r\n");
stream.Write(textByteArray, 0, textByteArray.Length);
}
Anexar a um ficheiro
O trecho a seguir acrescenta dados a um arquivo existente na conta do Data Lake Storage Gen1.
// Append to existing file
using (var stream = client.GetAppendStream(fileName))
{
byte[] textByteArray = Encoding.UTF8.GetBytes("This is the added line.\r\n");
stream.Write(textByteArray, 0, textByteArray.Length);
}
Ler um ficheiro
O trecho a seguir lê o conteúdo de um arquivo no Data Lake Storage Gen1.
//Read file contents
using (var readStream = new StreamReader(client.GetReadStream(fileName)))
{
string line;
while ((line = readStream.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
Obter propriedades do arquivo
O trecho a seguir retorna as propriedades associadas a um arquivo ou diretório.
// Get file properties
var directoryEntry = client.GetDirectoryEntry(fileName);
PrintDirectoryEntry(directoryEntry);
A definição do PrintDirectoryEntry método está disponível como parte da amostra no GitHub.
Renomear um arquivo
O trecho a seguir renomeia um arquivo existente em uma conta do Data Lake Storage Gen1.
// Rename a file
string destFilePath = "/Test/testRenameDest3.txt";
client.Rename(fileName, destFilePath, true);
Enumerar um diretório
O trecho a seguir enumera diretórios em uma conta do Data Lake Storage Gen1.
// Enumerate directory
foreach (var entry in client.EnumerateDirectory("/Test"))
{
PrintDirectoryEntry(entry);
}
A definição do PrintDirectoryEntry método está disponível como parte da amostra no GitHub.
Excluir diretórios recursivamente
O trecho a seguir exclui um diretório e todos os seus subdiretórios recursivamente.
// Delete a directory and all its subdirectories and files
client.DeleteRecursive("/Test");
Exemplos
Aqui estão alguns exemplos que mostram como usar o SDK do sistema de arquivos Data Lake Storage Gen1.
Ver também
- Operações de gerenciamento de contas no Data Lake Storage Gen1 usando o SDK do .NET
- Referência do SDK .NET do Data Lake Storage Gen1