Operacje systemu plików na Data Lake Storage Gen1 przy użyciu zestawu SDK platformy .NET
W tym artykule dowiesz się, jak wykonywać operacje systemu plików na Data Lake Storage Gen1 przy użyciu zestawu SDK platformy .NET. Operacje systemu plików obejmują tworzenie folderów na koncie Data Lake Storage Gen1, przekazywanie plików, pobieranie plików itp.
Aby uzyskać instrukcje dotyczące wykonywania operacji zarządzania kontami na Data Lake Storage Gen1 przy użyciu zestawu SDK platformy .NET, zobacz Operacje zarządzania kontami na Data Lake Storage Gen1 przy użyciu zestawu .NET SDK.
Wymagania wstępne
Visual Studio 2013 lub powyżej. Instrukcje w tym artykule używają programu Visual Studio 2019.
Subskrypcja platformy Azure. Zobacz temat Uzyskiwanie bezpłatnej wersji próbnej platformy Azure.
konto usługi Azure Data Lake Storage Gen1. Aby uzyskać instrukcje dotyczące tworzenia konta, zobacz Wprowadzenie do usługi Azure Data Lake Storage Gen1.
Tworzenie aplikacji .NET
Przykładowy kod dostępny w usłudze GitHub przeprowadzi Cię przez proces tworzenia plików w magazynie, łączenia plików, pobierania pliku i usuwania niektórych plików z magazynu. Ta część artykułu przeprowadzi Cię przez najważniejsze fragmenty kodu.
W programie Visual Studio wybierz menu Plik , Nowy, a następnie pozycję Projekt.
Wybierz pozycję Aplikacja konsolowa (.NET Framework), a następnie wybierz pozycję Dalej.
W polu Nazwa projektu wprowadź ,
CreateADLApplication
a następnie wybierz pozycję Utwórz.Dodaj pakiety NuGet do swojego projektu.
Kliknij prawym przyciskiem myszy nazwę projektu w Eksploratorze rozwiązań i kliknij polecenie Zarządzaj pakietami NuGet.
Na karcie Menedżer pakietów NuGet upewnij się, że dla źródła pakietu ustawiono wartość nuget.org. Upewnij się również, że pole wyboru Uwzględnij wersję wstępną zostało zaznaczone.
Wyszukaj i zainstaluj następujące pakiety NuGet:
-
Microsoft.Azure.DataLake.Store
— W tym artykule jest używana wersja 1.0.0. -
Microsoft.Rest.ClientRuntime.Azure.Authentication
— W tym artykule jest używana wersja 2.3.1.
Zamknij Menedżera pakietów NuGet.
-
Otwórz plik Program.cs, usuń istniejący kod, a następnie dołącz poniższe instrukcje, aby dodać odwołania do przestrzeni nazw.
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;
Zadeklaruj zmienne w pokazany poniżej sposób i podaj wartości dla symboli zastępczych. Upewnij się również, że podana tutaj ścieżka lokalna i nazwa pliku istnieją na komputerze.
namespace SdkSample { class Program { private static string _adlsg1AccountName = "<DATA-LAKE-STORAGE-GEN1-NAME>.azuredatalakestore.net"; } }
W pozostałych sekcjach artykułu można zobaczyć, jak używać dostępnych metod platformy .NET do wykonywania operacji, takich jak uwierzytelnianie, przekazywanie plików itp.
Authentication
- Aby uzyskać informacje na temat uwierzytelniania użytkownika końcowego dla aplikacji, zobacz Uwierzytelnianie użytkownika końcowego za pomocą Data Lake Storage Gen1 przy użyciu zestawu SDK platformy .NET.
- Aby zapoznać się z uwierzytelnianiem typu usługa dla aplikacji, zobacz Uwierzytelnianie typu usługa-usługa z Data Lake Storage Gen1 przy użyciu zestawu SDK platformy .NET.
Tworzenie obiektu klienta
Poniższy fragment kodu tworzy obiekt klienta systemu plików Data Lake Storage Gen1, który służy do wystawiania żądań do usługi.
// Create client objects
AdlsClient client = AdlsClient.CreateClient(_adlsg1AccountName, adlCreds);
Tworzenie plików i katalogów
Dodaj poniższy fragment kodu do aplikacji. Ten fragment kodu dodaje plik i dowolny katalog nadrzędny, który nie istnieje.
// 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);
}
Dołączanie do pliku
Poniższy fragment kodu dołącza dane do istniejącego pliku na koncie 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);
}
Odczytywanie pliku
Poniższy fragment kodu odczytuje zawartość pliku w 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);
}
}
Pobieranie właściwości pliku
Poniższy fragment kodu zwraca właściwości skojarzone z plikiem lub katalogiem.
// Get file properties
var directoryEntry = client.GetDirectoryEntry(fileName);
PrintDirectoryEntry(directoryEntry);
Definicja PrintDirectoryEntry
metody jest dostępna w ramach przykładu w usłudze GitHub.
Zmienianie nazwy pliku
Poniższy fragment kodu zmienia nazwę istniejącego pliku na koncie Data Lake Storage Gen1.
// Rename a file
string destFilePath = "/Test/testRenameDest3.txt";
client.Rename(fileName, destFilePath, true);
Wyliczanie katalogu
Poniższy fragment kodu wylicza katalogi na koncie Data Lake Storage Gen1.
// Enumerate directory
foreach (var entry in client.EnumerateDirectory("/Test"))
{
PrintDirectoryEntry(entry);
}
Definicja PrintDirectoryEntry
metody jest dostępna w ramach przykładu w usłudze GitHub.
Rekursywne usuwanie katalogów
Poniższy fragment kodu usuwa katalog i wszystkie jego podkatalogi, rekursywnie.
// Delete a directory and all its subdirectories and files
client.DeleteRecursive("/Test");
Przykłady
Poniżej przedstawiono kilka przykładów, które pokazują, jak używać zestawu SDK systemu plików Data Lake Storage Gen1.
Zobacz też
- Operacje zarządzania kontami na Data Lake Storage Gen1 przy użyciu zestawu SDK platformy .NET
- dokumentacja zestawu SDK platformy .NET Data Lake Storage Gen1