Operações do sistema de ficheiros no Data Lake Storage Gen1 com o SDK .NET
Neste artigo, irá aprender a executar operações do sistema de ficheiros no Data Lake Storage Gen1 com o SDK .NET. As operações do sistema de ficheiros incluem a criação de pastas numa conta Data Lake Storage Gen1, o carregamento de ficheiros, a transferência de ficheiros, etc.
Para obter instruções sobre como realizar operações de gestão de contas em Data Lake Storage Gen1 com o SDK .NET, veja Operações de gestão de contas em Data Lake Storage Gen1 com o SDK .NET.
Pré-requisitos
Visual Studio 2013 ou superior. As instruções neste artigo utilizam o Visual Studio 2019.
Uma subscrição do Azure. Consulte Obter versão de avaliação gratuita do Azure.
Azure Data Lake Storage conta 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 explica-lhe o processo de criação de ficheiros no arquivo, de concatenação de ficheiros, de transferência de um ficheiro e de eliminação de alguns ficheiros do arquivo. Esta secção do artigo explica-lhe as partes principais do código.
No Visual Studio, selecione o menu Ficheiro , Novo e, em seguida , Projeto.
Selecione Aplicação de Consola (.NET Framework) e, em seguida, selecione Seguinte.
Em Nome do projeto, introduza
CreateADLApplication
e, em seguida, 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.
No separador Gestor de Pacotes NuGet , certifique-se de que a origem do pacote está definida como nuget.org. Além disso, certifique-se de que a caixa de verificação Incluir pré-lançamento está selecionada.
Procure e instale os seguintes pacotes NuGet:
-
Microsoft.Azure.DataLake.Store
- Este artigo utiliza v1.0.0. -
Microsoft.Rest.ClientRuntime.Azure.Authentication
- Este artigo utiliza 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 marcadores de posição. Além disso, certifique-se de que o caminho local e o nome de ficheiro fornecidos aqui existem no computador.
namespace SdkSample { class Program { private static string _adlsg1AccountName = "<DATA-LAKE-STORAGE-GEN1-NAME>.azuredatalakestore.net"; } }
Nas secções restantes do artigo, pode ver como utilizar os métodos .NET disponíveis para realizar operações como autenticação, carregamento de ficheiros, etc.
Autenticação
- Para autenticação do utilizador final para a sua aplicação, veja Autenticação do utilizador final com Data Lake Storage Gen1 com o SDK .NET.
- Para autenticação serviço a serviço para a sua aplicação, veja Autenticação serviço a serviço com Data Lake Storage Gen1 com o SDK .NET.
Criar o objeto de cliente
O fragmento seguinte cria o objeto de cliente Data Lake Storage Gen1 sistema de ficheiros, que é utilizado para emitir pedidos para o serviço.
// Create client objects
AdlsClient client = AdlsClient.CreateClient(_adlsg1AccountName, adlCreds);
Criar um ficheiro e um diretório
Adicione o fragmento seguinte à sua aplicação. Este fragmento adiciona um ficheiro e qualquer diretório principal 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);
}
Acrescentar a um ficheiro
O fragmento seguinte acrescenta dados a um ficheiro existente na conta 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 fragmento seguinte lê o conteúdo de um ficheiro 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 as propriedades do ficheiro
O fragmento seguinte devolve as propriedades associadas a um ficheiro 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 do exemplo no GitHub.
Mudar o nome de um ficheiro
O fragmento seguinte muda o nome de um ficheiro existente numa conta Data Lake Storage Gen1.
// Rename a file
string destFilePath = "/Test/testRenameDest3.txt";
client.Rename(fileName, destFilePath, true);
Enumerar um diretório
O fragmento seguinte enumera diretórios numa conta 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 do exemplo no GitHub.
Eliminar diretórios recursivamente
O fragmento seguinte elimina um diretório e todos os seus subdiretórios, recursivamente.
// Delete a directory and all its subdirectories and files
client.DeleteRecursive("/Test");
Amostras
Eis alguns exemplos que mostram como utilizar o SDK Data Lake Storage Gen1 Filesystem.
Ver também
- Operações de gestão de contas no Data Lake Storage Gen1 com o SDK .NET
- Referência do SDK .NET Data Lake Storage Gen1