Operazioni del file system in Data Lake Storage Gen1 tramite .NET SDK

Questo articolo illustra come eseguire operazioni sul file system su Data Lake Storage Gen1 usando .NET SDK. Le operazioni del file system includono la creazione di cartelle in un account Data Lake Storage Gen1, il caricamento di file, il download di file e così via.

Per istruzioni su come eseguire operazioni di gestione degli account su Data Lake Storage Gen1 tramite .NET SDK, vedere Operazioni di gestione degli account in Data Lake Storage Gen1 con .NET SDK.

Prerequisiti

Creare un'applicazione .NET

Il codice di esempio disponibile in GitHub offre una descrizione dei processi di creazione dei file nell'archivio, concatenazione dei file, download di un file ed eliminazione di alcuni file nell'archivio. Questa sezione dell'articolo descrive in modo dettagliato le parti principali del codice.

  1. In Visual Studio selezionare il menu File , Nuovo e quindi Progetto.

  2. Scegliere App console (.NET Framework) e quindi selezionare Avanti.

  3. In Nome del progetto immettere CreateADLApplication e quindi selezionare Crea.

  4. Aggiungere i pacchetti NuGet al progetto.

    1. Fare clic con il pulsante destro del mouse sul nome del progetto in Esplora soluzioni e scegliere Gestisci pacchetti NuGet.

    2. Nella scheda Gestione pacchetti NuGet verificare che l'origine pacchetto sia impostata su nuget.org. Assicurarsi inoltre che la casella di controllo Includi versione preliminare sia selezionata.

    3. Cercare e installare i pacchetti NuGet seguenti:

      • Microsoft.Azure.DataLake.Store - Questo articolo usa la versione 1.0.0.
      • Microsoft.Rest.ClientRuntime.Azure.Authentication - Questo articolo usa la versione 2.3.1.

      Chiudere Gestione pacchetti NuGet.

  5. Aprire Program.cs, eliminare il codice esistente e quindi includere le istruzioni seguenti per aggiungere riferimenti agli spazi dei nomi.

    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. Dichiarare le variabili come illustrato di seguito e fornire i valori per i segnaposto. Assicurarsi anche che il percorso locale e il nome file forniti siano presenti nel computer.

    namespace SdkSample
    {
        class Program
        {
            private static string _adlsg1AccountName = "<DATA-LAKE-STORAGE-GEN1-NAME>.azuredatalakestore.net";
        }
    }
    

Nelle sezioni rimanenti dell'articolo è possibile vedere come usare i metodi .NET disponibili per eseguire operazioni come l'autenticazione, il caricamento di file e così via.

Authentication

Creare un oggetto client

Il frammento di codice seguente crea l'oggetto client del file System di Data Lake Storage Gen1, che viene usato per inviare le richieste al servizio.

// Create client objects
AdlsClient client = AdlsClient.CreateClient(_adlsg1AccountName, adlCreds);

Creare un file e una directory

Aggiungere il frammento di codice seguente all'applicazione. Questo frammento aggiunge un file e qualsiasi directory padre che non esiste.

// 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);
}

Aggiungere a un file

Il frammento di codice seguente accoda dati a un file esistente nell'account 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);
}

Leggere un file

Il frammento di codice seguente legge i contenuti di un file in 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);
    }
}

Ottenere le proprietà del file

Il frammento di codice seguente restituisce le proprietà associate a un file o una directory.

// Get file properties
var directoryEntry = client.GetDirectoryEntry(fileName);
PrintDirectoryEntry(directoryEntry);

La definizione del PrintDirectoryEntry metodo è disponibile come parte dell'esempio in GitHub.

Rinomina un file

Il frammento di codice seguente rinomina un file esistente in un account Data Lake Storage Gen1.

// Rename a file
string destFilePath = "/Test/testRenameDest3.txt";
client.Rename(fileName, destFilePath, true);

Enumerare una directory

Il frammento di codice seguente enumera le directory in un account Data Lake Storage Gen1.

// Enumerate directory
foreach (var entry in client.EnumerateDirectory("/Test"))
{
    PrintDirectoryEntry(entry);
}

La definizione del PrintDirectoryEntry metodo è disponibile come parte dell'esempio in GitHub.

Eliminare directory in modo ricorsivo

Il frammento di codice seguente elimina una directory e tutte le relative sottodirectory, in modo ricorsivo.

// Delete a directory and all its subdirectories and files
client.DeleteRecursive("/Test");

Esempi

Di seguito sono riportati alcuni esempi che illustrano come usare Data Lake Storage Gen1 Filesystem SDK.

Vedi anche

Passaggi successivi