Operacje systemu plików w usłudze Data Lake Storage Gen1 przy użyciu zestawu .NET SDK
Z tego artykułu dowiesz się, jak wykonywać operacje systemu plików w usłudze Data Lake Storage Gen1 przy użyciu zestawu .NET SDK. Operacje systemu plików obejmują tworzenie folderów na koncie usługi Data Lake Storage Gen1, przekazywanie plików, pobieranie plików itp.
Aby uzyskać instrukcje dotyczące wykonywania operacji zarządzania kontami w usłudze Data Lake Storage Gen1 przy użyciu zestawu .NET SDK, zobacz Operacje zarządzania kontami w usłudze Data Lake Storage Gen1 przy użyciu zestawu .NET SDK.
Wymagania wstępne
Program Visual Studio 2013 lub nowszy. Instrukcje w tym artykule korzystają z programu Visual Studio 2019.
Subskrypcja platformy Azure. Zobacz Uzyskiwanie bezpłatnej wersji próbnej platformy Azure.
konto usługi Azure Data Lake Storage Gen1. Aby uzyskać instrukcje dotyczące tworzenia konta, zobacz Rozpoczynanie pracy z usługą Azure Data Lake Storage Gen1.
Tworzenie aplikacji .NET
Przykładowy kod dostępny w witrynie GitHub przeprowadzi Cię przez proces tworzenia plików w magazynie, łączenia plików, pobierania pliku i usuwania niektórych plików w magazynie. W tej sekcji artykułu przedstawiono główne części 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ź ciąg
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żera pakietów NuGet upewnij się, że Źródło pakietu jest ustawione na nuget.org. Zadbaj również o to, by pole wyboru Uwzględnij wersję wstępną był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, jak pokazano poniżej, i podaj wartości symboli zastępczych. Upewnij się również, że na komputerze istnieje podana tutaj ścieżka lokalna i nazwa pliku.
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.
Uwierzytelnianie
- Aby uzyskać informacje na temat uwierzytelniania użytkowników końcowych dla aplikacji, zobacz Uwierzytelnianie użytkowników końcowych w usłudze Data Lake Storage Gen1 przy użyciu zestawu SDK platformy .NET.
- Aby uzyskać informacje o uwierzytelnianiu typu usługa-usługa dla aplikacji, zobacz Service-to-service authentication with Data Lake Storage Gen1 using .NET SDK.
Tworzenie obiektu klienta
Poniższy fragment kodu tworzy obiekt klienta systemu plików Usługi 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 pliku i katalogu
Dodaj następujący 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 usługi 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 usłudze 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 witrynie GitHub.
Zmienianie nazwy pliku
Poniższy fragment kodu zmienia nazwę istniejącego pliku na koncie usługi Data Lake Storage Gen1.
// Rename a file
string destFilePath = "/Test/testRenameDest3.txt";
client.Rename(fileName, destFilePath, true);
Wylicz katalog
Poniższy fragment kodu wylicza katalogi na koncie usługi 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 witrynie 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 usługi Data Lake Storage Gen1.
Zobacz też
- Operacje zarządzania kontami w usłudze Data Lake Storage Gen1 przy użyciu zestawu SDK platformy .NET
- Referencja SDK platformy .NET dla usługi Data Lake Storage Gen1