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
Visual Studio 2013 o versione successiva. Le istruzioni in questo articolo usano Visual Studio 2019.
Una sottoscrizione di Azure. Vedere Ottenere una versione di prova gratuita di Azure.
Account Azure Data Lake Storage Gen1. Per istruzioni su come creare un account, vedere Introduzione a Azure Data Lake Storage Gen1.
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.
In Visual Studio selezionare il menu File , Nuovo e quindi Progetto.
Scegliere App console (.NET Framework) e quindi selezionare Avanti.
In Nome del progetto immettere
CreateADLApplication
e quindi selezionare Crea.Aggiungere i pacchetti NuGet al progetto.
Fare clic con il pulsante destro del mouse sul nome del progetto in Esplora soluzioni e scegliere Gestisci pacchetti NuGet.
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.
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.
-
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;
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
- Per l'autenticazione dell'utente finale per l'applicazione, vedere Autenticazione dell'utente finale con Data Lake Storage Gen1 con .NET SDK.
- Per l'autenticazione da servizio a servizio per l'applicazione, vedere Autenticazione da servizio a servizio con Data Lake Storage Gen1 tramite .NET SDK.
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
- Operazioni di gestione di account in Data Lake Storage Gen1 con .NET SDK
- Riferimento a .NET SDK di Data Lake Storage Gen1