Partilhar via


Operações do sistema de arquivos no Data Lake Storage Gen1 usando o SDK do .NET

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

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.

  1. No Visual Studio, selecione o menu Arquivo , Novo e, em seguida , Projeto.

  2. Escolha Aplicativo de Console (.NET Framework) e selecione Avançar.

  3. Em Nome do projeto, digite CreateADLApplicatione selecione Criar.

  4. Adicione os pacotes NuGet ao seu projeto.

    1. Clique com o botão direito do rato no nome do projeto no Explorador de Soluções e clique em Gerir Pacotes NuGet.

    2. 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.

    3. 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.

  5. 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;
    
  6. 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

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

Próximos passos