Operações de sistema de arquivos no Data Lake armazenamento Gen1 usando o SDK do .NET
Neste artigo, você aprenderá a executar operações do sistema de arquivos no Data Lake Storage Gen1 usando o SDK do .NET. As operações de filesytem incluem a criação de pastas em uma conta do Data Lake Storage Gen1, carregamento de arquivos, download de arquivos etc.
Para obter instruções sobre como realizar operações de gerenciamento de conta no Data Lake Storage Gen1 usando o SDK do .NET, veja Operações de gerenciamento de conta no Data Lake Storage Gen1 usando o SDK do .NET.
Pré-requisitos
Visual Studio 2013 ou posterior. As instruções deste artigo usam o Visual Studio 2019.
Uma assinatura do Azure. Consulte Obter a avaliação gratuita do Azure.
Conta do Azure Data Lake Storage Gen1. Para obter instruções sobre como criar uma conta, confira Introdução ao Azure Data Lake Storage Gen1.
Criar um aplicativo .NET
O exemplo de código disponível no GitHub explica o processo de criação de arquivos no armazenamento, concatenação de arquivos, download de um arquivo e exclusão de alguns arquivos no armazenamento. Esta seção do artigo percorre com você as principais partes do código.
No Visual Studio, selecione o menu Arquivo, Novo e Projeto.
Selecione Aplicativo de Console (.NET Framework) e Avançar.
Em Nome do projeto, digite
CreateADLApplication
e, em seguida, selecione Criar.Adicione os pacotes NuGet ao seu projeto.
Clique com o botão direito do mouse no nome do projeto no Gerenciador de Soluções e clique em Gerenciar Pacotes NuGet.
Na guia Gerenciador de Pacotes NuGet, verifique se a 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 Gerenciador de Pacotes NuGet.
-
Abra Program.cs, exclua o código existente e inclua as instruções a seguir para adicionar referências aos namespaces.
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, o caminho local e o nome de arquivo fornecido 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 o métodos do .NET disponíveis para realizar operações como autenticação, carregamento de arquivos, etc.
Autenticação
- Para autenticação do usuário final para seu aplicativo, veja Autenticação de usuário final com o Data Lake Storage Gen1 usando o SDK do .NET.
- Para autenticação de serviço a serviço do aplicativo, confira Autenticação de serviço a serviço com o Data Lake Storage Gen1 usando o SDK do .NET.
Criar objeto de cliente
O snippet de código a seguir cria o objeto de cliente de sistema de arquivos do 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 snippet de código a seguir ao seu aplicativo. Este snippet de código adiciona um arquivo e qualquer diretório pai que não exista.
// 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 arquivo
O snippet de código 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 arquivo
O snippet de código a seguir lê o conteúdo de um arquivo na conta do 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 snippet de código 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 método PrintDirectoryEntry
está disponível como parte do exemplo no GitHub.
Renomear um arquivo
O snippet de código 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 snippet de código a seguir enumera os 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 método PrintDirectoryEntry
está disponível como parte do exemplo no GitHub.
Excluir diretórios recursivamente
O snippet de código 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");
Amostras
Aqui estão alguns exemplos que mostram como usar o SDK do sistema de arquivos do Data Lake Storage Gen1.
Confira também
- Operações de gerenciamento de conta no Data Lake Storage Gen1 usando o SDK do .NET
- Referência de SDK do .NET do Data Lake Storage Gen1